王爽《汇编语言》书中实验5的第六题
我在完成王爽《汇编语言》这本书中实验5的第六题时,我补全code段中的代码如下:assume cs:codea segment dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffha endsb segment dw 0,0,0,0,0,0,0,0b endscode segmentstart:mov ax,a mov ds,ax mov ax,b mov ss,ax mov sp,10h mov bx,0 mov cx,8s: push add bx,2 loop s mov ax,4c00h int 21hcode endsend start编译连接后,用debug 加载调试,单步执行的过程中,当循环到cx为3时就停了,不能执行到程序的末尾,不知是怎么回事,求解,谢谢各位啦! - -.......static/image/common/sigline.gif
魔豆子时尚购物 打造一站式购物平台 assume cs:code,ds:a,ss:b;申请数据空间和栈空间
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,a
mov ds,ax
mov ax,b
mov ss,ax
mov sp,10h
mov bx,0
mov cx,8
s: push
add bx,2
loop s
mov ax,4c00h
int 21h
code ends
end start
你没有申请栈段空间和数据段空间 所以当你赋予栈段地址的时候其实那段地址是有数据的并不是空的 所以你在push时其实是在改写原有的内存空间内容导致debug崩溃 你可以用debug调试看看用D命令查看ss:sp 地址是否是空的
记得一定要先申请段空间 写入内容
页:
[1]