汇编题目:计算32位二进制的加法
编程计算数字加法运算:341ef000H+61201000H,进位不能丢弃
assume cs:codesg data segment db 16 dup(0) db 1eh,34h,0,0f0h ;数字:341ef000,你也可以使用立即数 db 20h,61h,0,10h ;数字:61201000,你也可以使用立即数 data ends stack segment db 100 dup(0) stack ends codesg segment start:mov ax,data mov ds,ax mov ax,stack mov ss,ax mov sp,100 xor ax,ax mov bx,0 mov bx,ds:[18] add bx,ds:[22] adc ax,0 add ax,ds:[16] add ax,ds:[20] mov ds:[0],ax mov ds:[2],bx mov ax,4c00h int 21h
这里的指令用到了adc,它可以进行进位的加法运算。
优化:其实下面的三条语句可合成两条,因为adc加法的时候会自动把CF标志位家进来的。
adc ax,0
add ax,ds:[16]
add ax,ds:[20]
优化后:
mov ax,ds:[16]
adc ax,ds:[20]
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/5112713.html
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!
posted on 2016-01-08 11:52 jack_Meng 阅读(1915) 评论(0) 编辑 收藏 举报