呼叫老鸟 甲鱼。。。奇怪的问题
购书已经快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 这里就不正常了
-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 程序开始运行前 R 命令修改CX 成0 也运行出错 个把小时搞下来 终于找到出错的地方了
错误在第10行的 mov sp,32H这里,加了H 变成16位 ,程序执行到这步后把 CS代码存放的位置当栈段了。
我只是路过打酱油的。 本帖最后由 ssyor 于 2013-5-14 06:42 编辑
同看爽哥汇编的路过,我进度也很慢。
http://www.fishc.com/map 无回帖,不论坛,这才是人道。 我只是路过打酱油的。 强烈支持楼主ing……
页:
[1]