第六章第六题答案!大家帮忙看看,为甚最后两次循环过不去啊??
assume cs:code,ds:a,ss:ba 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,a
mov ds,ax
mov bx,0h
mov ax,b
mov ss,ax
mov sp,10h
mov cx,8
s:
push ds:
add bx,2
loop s
mov ax,4c00h
int 21h
code ends
end start
把栈设置多些。 调试t单步走会有问题,但不是所有的机器都会有。 和机器有关系啊!!!
栈设大了就不在b的范围内了啊? 本帖最后由 Sabo 于 2011-12-8 10:42 编辑
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你cx设置为8,a处只循环8次,9到0ffh的数据都没有用。
如果要把a全部放入b,b的空间应该大于等于a的空间。
不过你写的不会影响到循环的问题,因为栈够放下8次的循环。
下面看下内存的对比。就知道循环是否完成!
设置完ds.ss后
执行完循环后
对啊!谢谢你!!
思路对了最重要!!!呵呵 看了看,程序是没问题的,亲
页:
[1]