欢迎来到天天文库
浏览记录
ID:35108381
大小:309.00 KB
页数:9页
时间:2019-03-18
《汇编语言课程设计汇本》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、汇编语言编程设计以下程序实现计算(W-(Z+X*Y-480))/Y的功能在本程序中将X,Y,W,Z的值分别取为:25,5,50,15datasegmentvarXdw25varYdw5varWdw50varZdw15valdw?val2dw?dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovax,varX;将被乘数放到ax中movbx,varY;将乘数放到bx中mulbx;计算(x*y)(假设可以将乘积放到一个字中)addax,varZ;计算(x*y)+Zsubax,480;计算
2、z+(x*y)-480movbx,varWsubbx,ax;计算w-(z+(x*y)-480)movax,bx;将被除数放到ax中(假设可以放到一个字中)movdx,0;将被除数的高位清零movbx,varY;将除数放到bx中divbx;计算最终结果(w-(z+(x*y)-480))/ymovval,ax;将商放到val中movval2,dx;将余数放到val2中movax,4c00hint21hcodeendsendstart编译结果以及说明:点击“!”生成exe文件进入MS-DOS窗口将程序编译连接生成.exe文件后用debug进行单步调试结果如下:开始调试
3、:-G:执行完整的程序,当使用-G命令运行程序后,程序的数据从数据段偏移地址100H开始存放。使用命令-dds:100-R命令:显示当前每个寄存器的内容-T命令:单步执行程序,当单步执行程序完以后,数据是从数据段偏移地址为0000开始存放的。第一条语句执行完之后从图中可以看出每个寄存器内容标志寄存器每个状态为的值分别为:溢出标志OF(Overflowflag) 0 OV(1) NV(0)方向标志DF(Directionflag) 0 DN(1)
4、 UP(0)中断标志IF(Interruptflag) 1 EI(1) DI(0)符号标志SF(Signflag) 0 NG(1) PL(0)零标志ZF(Zeroflag) 0 ZR(1) NZ(0)辅助标志AF(Auxiliarycarry
5、flag) 0 AC(1) NA(0)奇偶标志PF(Parityflag) 0 PE(1) PO(0)进位标志CF(Carryflag) 0 CY(1) NC(0)下一条指令的二进制编码为:8ed8---1000111011011000第二条语句方法同上最后这两条语句实现返dos
6、程序。-dds:0000查看数据段的结果上机调试错误(由于对汇编工具的不熟练使用造成的一些不必要的低级错误,如若细心可以避免,错误操作运行如下)心得体会:经过十周的汇编语言的学习,我对汇编语言有个初步认识,首先主要学习了汇编语言的基本知识,介绍了汇编的背景知识及由来,知道了汇编语言是处在机器语言和高级语言中间的一种低级语言。由于计算机能够直接识别的数据是由二进制数0和1组成的代码。所以用机器语言编写的程序是计算机惟一能够直接识别并执行的程序,而用其他语言编写的程序必须经过翻译才能变换成机器语言程序,为了克服机器语言的缺点,人们采用助记符表示机器指令的操作码,用变
7、量代替操作数的存放地址等,这样就形成了汇编语言。在这书的的学习中,最大的收获就是数与编码的学习,完善了以前的学习。
此文档下载收益归作者所有