yearn2005 发表于 2013-5-14 01:48:18

呼叫老鸟 甲鱼。。。奇怪的问题

   购书已经快2个月,才看到128页 程序6.3 处。
编译以下代码:
assume cs:codesg
codesg segment

      dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
          
          dw 0,0,0,0,0,0,0,0
          
start: mov ax,cs
       mov ss,ax
           mov sp,32h
          
           sub bx,bx                  ;mov bx,0也用过 出同样问题
           mov cx,8
          
s:   push cs:
       add bx,2
           loop s
          
           mov bx,0
           mov cx,8
          
s0:           pop cs:
           add bx,2
           loop s0
          
           mov ax,4c00h
           int 21h
          
codesg ends
end start

-------------------------------困惑的分割线------------------------


T命令执行到 mov cx,8 这里就不正常了

yearn2005 发表于 2013-5-14 02:00:44

-d cs
   ^ Error
-d cs:0
13E9:000023 01 56 04 89 07 BC 0A-EF 0D ED 0F BA 0C 87 09   #.V.............
13E9:001000 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
13E9:00208C C8 8E D0 BC 32 00 2B-DB B9 08 00 2E FF 37 83   .....2.+......7.
13E9:0030C3 02 E2 F8 BB 00 00 B9-08 00 2E 8F 07 83 C3 02   ................
13E9:0040E2 F8 B8 00 4C CD 21 00-00 00 00 00 00 00 00 00   ....L.!.........
13E9:005000 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
13E9:006000 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
13E9:007000 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
-u
13E9:0020 8CC8          MOV   AX,CS
13E9:0022 8ED0          MOV   SS,AX
13E9:0024 BC3200      MOV   SP,0032
13E9:0027 2BDB          SUB   BX,BX
13E9:0029 B90800      MOV   CX,0008
13E9:002C 2E            CS:
13E9:002D FF37          PUSH   
13E9:002F 83C302      ADD   BX,+02
13E9:0032 E2F8          LOOP    002C
13E9:0034 BB0000      MOV   BX,0000
13E9:0037 B90800      MOV   CX,0008
13E9:003A 2E            CS:
13E9:003B 8F07          POP   
13E9:003D 83C302      ADD   BX,+02
-r
AX=0000BX=0000CX=0047DX=0000SP=0000BP=0000SI=0000DI=0000
DS=13D9ES=13D9SS=13E9CS=13E9IP=0020   NV UP EI PL NZ NA PO NC
13E9:0020 8CC8          MOV   AX,CS
-t

AX=13E9BX=0000CX=0047DX=0000SP=0000BP=0000SI=0000DI=0000
DS=13D9ES=13D9SS=13E9CS=13E9IP=0022   NV UP EI PL NZ NA PO NC
13E9:0022 8ED0          MOV   SS,AX
-t

AX=13E9BX=0000CX=0047DX=0000SP=0032BP=0000SI=0000DI=0000
DS=13D9ES=13D9SS=13E9CS=13E9IP=0027   NV UP EI PL NZ NA PO NC
13E9:0027 2BE9          SUB   BP,CX
-t

AX=13E9BX=0000CX=0047DX=0000SP=0032BP=FFB9SI=0000DI=0000
DS=13D9ES=13D9SS=13E9CS=13E9IP=0029   NV UP EI NG NZ AC PO CY
13E9:0029 13B9FF29      ADC   DI,                  DS:29FF=0000
-t

AX=13E9BX=0000CX=0047DX=0000SP=0032BP=FFB9SI=0000DI=0001
DS=13D9ES=13D9SS=13E9CS=13E9IP=002D   NV UP EI PL NZ NA PO NC
13E9:002D 00E9          ADD   CL,CH
-t

AX=13E9BX=0000CX=0047DX=0000SP=0032BP=FFB9SI=0000DI=0001
DS=13D9ES=13D9SS=13E9CS=13E9IP=002F   NV UP EI PL NZ NA PE NC
13E9:002F 13EB          ADC   BP,BX

yearn2005 发表于 2013-5-14 02:05:41

程序开始运行前 R 命令修改CX 成0 也运行出错   

yearn2005 发表于 2013-5-14 02:22:40

个把小时搞下来 终于找到出错的地方了

错误在第10行的 mov sp,32H这里,加了H 变成16位 ,程序执行到这步后把 CS代码存放的位置当栈段了。

bafengao 发表于 2013-5-14 06:11:37

我只是路过打酱油的。

ssyor 发表于 2013-5-14 06:39:34

本帖最后由 ssyor 于 2013-5-14 06:42 编辑

同看爽哥汇编的路过,我进度也很慢。

向阳 发表于 2013-5-14 08:17:09

http://www.fishc.com/map

loveliuhao323 发表于 2013-5-14 21:21:15

无回帖,不论坛,这才是人道。

hide2may 发表于 2013-5-14 21:49:44

我只是路过打酱油的。

福禄娃娃 发表于 2013-5-15 14:59:55

强烈支持楼主ing……
页: [1]
查看完整版本: 呼叫老鸟 甲鱼。。。奇怪的问题