强子 发表于 2013-3-11 10:32:47

求助 debug调试出错 请各位帮忙

本帖最后由 强子 于 2013-3-11 13:40 编辑

源代码如下:

assume cs:code,ds:a,ss:c1c
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
c1c segment
db 0,0,0,0,0,0,0,0
c1c ends
code segment
start:   
         mov ax,c1c
   mov ss,ax
   mov sp,8
   
   mov ax,a
   mov ds,ax
   
   mov cx,4   
   mov bx,6
s: push
   sub bx,2
   loop s

   mov ax,4c00h
   int 21h
   
code ends
end start

编译后进入debug
在把c1c的地址给ss之前c1c处的空间是初始内容0


把c1c出的地址给ss之后就多出了四个字节的内容,


在运行到bx减2的时候就报错,不知道是什么原因?






半生缘 发表于 2013-3-11 18:48:55

话说 不知道为啥 调试一直 不让
不过是可以运行的 我这不让用 带s的段名(以S开头)所以改了 后边是显示 栈中内容 明显是正常运行了
但是一调试 就无效指令assume cs:code,ds:a,ss:stack
a segment
        db 31h,32h,33h,34h,35h,36h,37h,38h
a ends
b segment
        db 1,2,3,4,5,6,7,8
b ends
stack segment
        db 0,0,0,0,0,0,0,0
stack ends
code segment
start:        mov ax,stack
        mov ss,ax
        mov sp,8
       
        mov ax,a
        mov ds,ax
       
        mov cx,4   
        mov bx,6
s:        push
        sub bx,2
        loop s
       
        mov ax,ss
        mov es,ax
        mov bp,0
        mov cx,8
        mov dx,0505h
        mov bx,0fbh
        mov ax,1300h
        int 10h
        mov ah,1
        int 21h
        mov ax,4c00h
        int 21h
       
code ends
end start
页: [1]
查看完整版本: 求助 debug调试出错 请各位帮忙