yuinitiatec++ 发表于 2013-12-23 13:01:38

为什么使用栈会调试不出来

assume cs:code,ds:data,ss:stack
      ;为什么使用栈会调试不出来
data segment
    db 'aaaabbbbccccdddd'
db 'aaaabbbbccccdddd'
db 'aaaabbbbccccdddd'   
db 'aaaabbbbccccdddd'
data ends
stack segment
   dw 0,0,0,0,0,0,0,0 ;定义一个字型位
stack ends
code segment
start:mov ax,data
      mov ds,ax
      mov ax,stack
      mov ss,ax
   mov sp,16
      mov bx,0
      mov cx,4
L:
   push cx ;此时将cx的值进栈
      mov si,0 ;用于定位列
   mov cx,3 ;定义内层循环
   L1:mov al,
   and al,11011111b
   mov ,al
   inc si
   loop L1
   add bx,16
   pop cx ;将cx从栈中拿出来
             ; 作用就是使其他不死循环
loop L
   
mov ax,4c00h
    int 21h
code ends
end start

霸气外露 发表于 2013-12-23 19:21:04

问题在具体点, 我没明白,

立志当学霸! 发表于 2013-12-24 10:08:22

问题在于内循环的cx应该是16,而不是3。你自己想清楚吧。
页: [1]
查看完整版本: 为什么使用栈会调试不出来