惊天动地 发表于 2012-2-17 13:32:37

汇编第5实验求助

我是循环到第6次崩溃了,也不知道这样写对不


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,a
                        mov ds,ax
                        mov bx,0
                       
                        mov ax,b
                        mov ss,ax
                        mov sp,16
                       
                        mov cx,8
                s:        push ds:
                        add bx,2
                        loop s
                       
                        mov ax,4c00h
                        int 21h
code ends
end start

风剑河 发表于 2012-2-17 16:49:03

这题不是要放到b段中吗?楼主貌似放到a段中去了??

zshzshong 发表于 2012-2-18 13:19:38

风剑河 发表于 2012-2-17 16:49 static/image/common/back.gif
这题不是要放到b段中吗?楼主貌似放到a段中去了??

对啊,楼主只是把b段当做栈把a的数据逐个推入。
我debug了楼主的代码,发现到第六次循环时,执行完add bx, 2这句指令后,cs:ip就突然跳到0000:0077 此处的指令是int 3,而各个寄存器的数据也变的不知所以然。
我没想通为什么会这样,希望广大鱼油赐教,我也想弄懂这是为什么{:5_100:}

笨蛋侦探 发表于 2012-2-20 16:01:04

mov sp 16 要写成 mov sp 16h
因为是16进制嘛。

流浪南中国 发表于 2012-2-21 10:10:42

晕哦,你程序只定义了代码段,没有定义数据段、和堆栈段,不出错才怪哦
页: [1]
查看完整版本: 汇编第5实验求助