|
4鱼币
本帖最后由 黑___猫 于 2012-6-25 18:32 编辑
他的要求是用push把a段中的前8个字型数据,<逆顺>存储到B段中,下面是我的代码!!
assume cs:code
a segment
dw 1,2,3,4,5,6,7,8,9,0aH,0bH,0cH,0dH,0eH,0fH,0ffH
a ends
b segment
dw 0,0,0,0,0,0,0,0
b ends
code segment
start:mov ax,b
mov ss,ax
mov sp,16
mov ax,a
mov ds,ax
mov bx,0
mov cx,8
s:push [bx]
add bx,2
loop s
mov ax,4c00h
int 21h
code ends
end start
但是我在想按顺序存储到B段中,
start:mov ax,b
mov ss,ax
mov sp,16
mov ax,a
mov ds,ax
mov bx,15 我用debug测试 这里BX应该是14才能按顺序存储到B段中,为什么呢?
mov cx,8
s: push [bx]
sub bx,2
loop s
|
最佳答案
查看完整内容
内存单元地址00 01,02 03,04 05,06 07,08 09,10 11,12 13,14 15,16 17.......
对应的内容 (1) (2) (3) (4) (5) (6) (7) (8) (9).......
为什么不是14呢?14号内存的单元内容08h,15号00h,16号是09h,17号是00h,如果以15
号内存作为低地址读取一个字的数据的话,应该00 09,也就是900h,所以你第二个程序写入b段的数据
应该是0200h,0300h,0400h,0500h, ...
|