5.6这个程序是计算ffff:0~ffff:b单元中的数据的和,也就是计算12个数据的和。
楼主的思路正确 ^_^
下面是我的代码,就是按照楼主的思路写的,先计算ffff:[0]+ffff:[6],再计算ffff:[1]+ffff:[7],依次下去。
用debug跟踪计算结果dx的值,发现和书上的执行结果一样。
(问题,为什么几次执行结果都一样呢?即每次执行ffff:0~ffff:b这块内存的数据没变化。
答案见实验一的倒数第二小题)
代码如下:
assume cs:code
data segment
code segment
mov ax,0ffffh
mov ds,ax
mov bx,0
mov dx,0
mov cx,6
s:mov al,[bx]
mov ah,0
add dx,ax
mov al,[6+bx]
mov ah,0
add dx,ax
inc bx
loop s
mov ax,4c00H
int 21H
code ends
end |