assume cs:code
a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
c segment
db 0,0,0,0,0,0,0,0
c ends
code sebment
start:
mov ax,a -->这条不要 (这里我觉得直接用CS的地址比较好,但不知为
mov ss,ax -->这条也不要 什么执行后计算结果出错了!有人给个意见吗?)
mov ax,b
mov ds,ax
mov ax,c
mov es,ax
mov bx,0
mov ax,0
mov cx,8
s: mov al,ss:[bx] (这里我的想法是:mov al,cs:[bx])
add al,ds:[bx]
mov es:[bx],al
add bx,1
loop s
mov ax,4c00h
int 21h
code ends
end start
用debug执行到mov ax,4c00h后,
DS=0C88 ES=0C89 SS=0C87 CS=08CA IP=0025
-d 0c89:0 f
0c89:0000 02 04 06 08 0A 0C 0E 10-00 00 00 00 00 00 00 00
-d 0c88:0 f
0c89:0000 01 02 03 04 05 06 07 08-00 00 00 00 00 00 00 00
-d 0c87:0 f
0c89:0000 01 02 03 04 05 06 07 08-00 00 00 00 00 00 00 00
请问这个程序有问题吗,谢谢给出意见!还能再精简一下吗? |