奥普瓯江 发表于 2019-3-30 15:59:52

检测点 16.1

本帖最后由 奥普瓯江 于 2019-3-30 16:23 编辑

                下面的程序将code段中 a 处的8个数据累加,结果储存到b处双字中,补全程序。

assume cs:code

code segment
                a dw 1, 2, 3, 4, 5, 6, 7, 8
                b dd 0   
               
start:
                mov si, 0
                mov cx, 8
s:       
                mov ax, a       ;a等于cs:0
                add a, ax    ;b等于cs:0,b和a只有长度区别,这个区别只有在调用的时候和储存的有效
                adc a, 0   ;比如要调用b一次性就需要调用4个字节(两个字)b:这个地址后面的四个字节都需调用不然会报错
                add si, a
                loop s
               
                mov ax, 4c00h
                int 21h
               
               
code ends
end start

最后b处储存的是24

dota小波 发表于 2019-9-28 13:31:49

add si,a是不是要改成add si,2

奥普瓯江 发表于 2019-9-28 15:42:50

dota小波 发表于 2019-9-28 13:31
add si,a是不是要改成add si,2

都可以,这两种写法都不叫错
页: [1]
查看完整版本: 检测点 16.1