《实验五 汇编程序设计实验》由会员分享,可在线阅读,更多相关《实验五 汇编程序设计实验(7页珍藏版)》请在金锄头文库上搜索。
1、计算机组成与结构实验报告题目:汇编程序设计实验(二)专业:计算机科学与技术 班级: 2班 学号: 0930030248 姓名: 苏振坤 指导教师: 孙桂煌 完成日期:2011 年 10 月 23 日一、实验目的1 掌握汇编语言程序编写与调试。 2 掌握算术运算指令的使用。 3 掌握逻辑运算指令的使用。 4 掌握循环指令的使用。 5 熟练数据传送指令MOV、LEA的使用。6 熟练通用寄存器AX、BX、CX、DX的使用,变址寄存器SI、DI的使用。7 熟练各种寻址方式。8 跳转指令的使用。9 熟悉DOS功能调用。二、实验任务数据段的定义如下: DATAS SEGMENT A db 8 B db 5
2、C db 16 D db 20DATAS ENDS1 计算A*B+C-D,把结果输出到屏幕。2 把非压缩的BCD码3532H转变为压缩的BCD码52H,并输出到屏幕。3 使用BCD码校正指令,实现两个4位十进制数的加法4678+2556,并把结果输出到屏幕 4 把寄存器bl中值,以二进制的形式输出到屏幕,并统计数码1的个数,输出到屏幕。例如 bl=0A6H屏幕显示格式如下:10100110B 4三、实验过程1 计算A*B+C-D,把结果输出到屏幕。程序代码:mov al,A mov bl,B mul bl mov bl,C add ax,bx mov bl,D sub ax,bx mov bl
3、,al mov cl,10 div cl add ax,3030h push ax mov dl,al mov ah,02h int 21h pop ax mov dl,ah mov ah,02h int 21h 结果截图:2 把非压缩的BCD码3532H转变为压缩的BCD码52H,并输出到屏幕。程序代码:data segment endsstack segment dw 128 dup(0)endscode segmentstart:; set segment registers: mov ax, data mov ds, ax mov es, ax mov ax,3532h mov cl,
4、4 shl ah,cl mov bl,ah and al,0Fh or al,bl xor ah,ah mov bl,10h div bl add ax,3030h mov ch,ah mov dl,al mov ah,02h int 21h mov dl,ch mov ah,02h int 21h 结果截图:3 使用BCD码校正指令,实现两个4位十进制数的加法4678+2556,并把结果输出到屏幕。程序代码:data segment endsstack segment dw 128 dup(0)endscode segmentassume cs:code ds:datastart: mov
5、ax, data mov ds, ax mov es, ax mov al,78h add al,56h daa mov bl,al mov al,46h adc al,25h daa mov bh,al push bx mov cl,4 shr bh,cl add bh,30h mov dl,bh mov ah,02h int 21h pop bx and bh,0fh add bh,30h mov dl,bh mov ah,02h int 21h push bx mov cl,4 shr bl,cl add bl,30h mov dl,bl mov ah,02h int 21h pop bx and bl,0fh add bl,30h mov dl,bl mov ah,02h int 21h mov ax, 4c00h int 21h endsend start 结果截图: 4 把寄存器bl中值,以二进制的形式输出到屏幕,并统计数码1的个数,输出到屏幕。程序代码: 结果截图:四、实验体会