莫名其妙 发表于 2012-2-20 11:56:51

第10章10-3题 数据部分!求修改

本帖最后由 莫名其妙 于 2012-2-20 23:18 编辑

dtoc:   push dx
    push cx
    push bx
    push si
    push di   ;各种进栈
    mov bx,0
    mov si,0   
x:mov cx,10   ;除数为10
    mov dx,0   ;被除数高16位置0
      
       div cx               ;ax 是商 dx是余数 余数+30h进栈然后在出栈
    mov cx,ax               ;进行循环判断 cx=0进行 jcxz 跳转
   
   
    add dx,30h
    push dx   ;将余数保存进栈
    inc bx   ;保存push次数
   
    jcxz orzz   ;跳
    jmp short x
   
orzz:mov cx,bx;读取push次数 设置循环值
   pop ax   ;余数出栈
   mov ds:,al
    jcxz orz
   inc si
    dec bx ;循环次数自减
       jmp short orzz

orz:pop di
    pop si
    pop bx
    pop cx
    pop dx
   ret

以上是第10章 10-3题 中间calldtoc 代码 按照我的思路应该是可以执行的但是一直DEBUG 报错 求修改!~
下面是debug 单步跟踪的 出现问题的地方就在 ret 以后   难道是栈的问题?   我设置的栈db 10 dup (0) 难道call 保存的IP没存上?
-t
AX=0000BX=00A5CX=0000DX=0031SP=FFFEBP=0000SI=1405DI=0000
DS=1404ES=13F4SS=1405CS=1406IP=004E   NV UP EI PL ZR NA PE NC
1406:004E 5A            POP   DX
-t
AX=0000BX=00A5CX=0000DX=0013SP=0000BP=0000SI=1405DI=0000
DS=1404ES=13F4SS=1405CS=1406IP=004F   NV UP EI PL ZR NA PE NC
1406:004F C3            RET
-d 1404:0
1404:000031 32 36 36 36 00 00 00-00 00 00 00 00 00 00 00   12666...........
1404:001000 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
1404:0020B8 7A 31 BB 04 14 8E DB-BB 05 14 8E D3 BE 00 00   .z1.............
1404:0030E8 0E 00 B6 08 B2 03 B1-CA E8 34 00 B8 00 4C CD   ..........4...L.
1404:004021 52 51 53 56 57 BB 00-00 BE 00 00 B9 0A 00 BA   !RQSVW..........
1404:005000 00 F7 F1 8B C8 83 C2-30 52 43 E3 02 EB ED 8B   ........0RC.....
1404:0060CB 58 88 04 E3 04 46 4B-EB F5 5F 5E 5B 59 5A C3   .X....FK.._^[YZ.
1404:007053 51 56 B0 A0 FE CE F6-E6 8B D8 B0 02 F6 E2 83   SQV.............
-t
AX=0000BX=00A5CX=0000DX=0013SP=0002BP=0000SI=1405DI=0000
DS=1404ES=13F4SS=1405CS=1406IP=0000   NV UP EI PL ZR NA PE NC
1406:0000 B87A31      MOV   AX,317A
-

莫名其妙 发表于 2012-2-20 23:15:25

唉..低级超级低级错误竟然漏写了sp 指针位置我说怎么 回事呢...!~~:@:@:@:'(:'( 这实验10可是费了不少脑细胞!~

莫名其妙 发表于 2012-2-20 23:17:39

已经解决了竟然是忘记写指针!~mov sp,10 mov sp,10 mov sp,10 mov sp,10 mov sp,10 mov sp,10 ........默写10遍以儆效尤!~

冲啊大笼包 发表于 2016-11-12 20:30:09

{:10_245:}看不来呀

e马先森 发表于 2017-2-16 12:47:05

漏写了sp 指针位置mov sp,10{:10_249:}
页: [1]
查看完整版本: 第10章10-3题 数据部分!求修改