数学二进制的算法汇编题⽬:计算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]

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。