|
主题 : : 没人对检测点9.1 (3) 提出意见吗? [待解决] |
回复[ 7次 ]
点击[ 954次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2008-08-27 00:02 ]
[引用]
[回复]
[ top ] | |
荣誉值:4
信誉值:3
注册日期:2008-06-22 20:23 |
表面上是CS=0060 IP=00BE
但事实上,我在debug中无法正常用命令写入代码,所以把es改成了ds。
结果运行下来IP没有问题,但CS没有变化,显示为13B9。真是奇怪。有人能来解释一下吗?
-a
13B9:0100 mov ax,2000
13B9:0103 mov es,ax
13B9:0105 jmp dword ptr es:[1000]
^ Error
13B9:0105
-a
13B9:0105 mov ax,2000
13B9:0108 mov ds,ax
13B9:010A jmp dword ptr [1000]
13B9:010E
-r ip
IP 0100
:0105
-u
13B9:0100 B80020 MOV AX,2000
13B9:0103 8EC0 MOV ES,AX
13B9:0105 B80020 MOV AX,2000
13B9:0108 8ED8 MOV DS,AX
13B9:010A FF260010 JMP [1000]
13B9:010E 0000 ADD [BX+SI],AL
13B9:0110 0000 ADD [BX+SI],AL
13B9:0112 0000 ADD [BX+SI],AL
13B9:0114 0000 ADD [BX+SI],AL
13B9:0116 0000 ADD [BX+SI],AL
13B9:0118 0000 ADD [BX+SI],AL
13B9:011A 0000 ADD [BX+SI],AL
13B9:011C 3400 XOR AL,00
13B9:011E A813 TEST AL,13
-t
AX=2000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13B9 ES=13B9 SS=13B9 CS=13B9 IP=0108 NV UP EI PL NZ NA PO NC
13B9:0108 8ED8 MOV DS,AX
-t
AX=2000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=2000 ES=13B9 SS=13B9 CS=13B9 IP=010A NV UP EI PL NZ NA PO NC
13B9:010A FF260010 JMP [1000] DS:1000=00BE
-t
AX=2000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=2000 ES=13B9 SS=13B9 CS=13B9 IP=00BE NV UP EI PL NZ NA PO NC
13B9:00BE 6E DB 6E | | |
|
|
|
|
[第1楼]
[ 回复时间:2008-08-27 12:48 ]
[引用]
[回复]
[ top ] | |
荣誉值:4
信誉值:3
注册日期:2008-06-22 20:23 |
编了段小代码,这回不管ES还是DS,都正常了。就是不知道为什么原来在debug里直接用a命令写入时,就会不一样。还是希望谁能来解释一下。
assume cs:code
code segment
start:
mov ax,2000h
mov ds,ax
mov bx,1000h
mov ax,00beh
mov dx,0006h
mov word ptr [bx],ax
mov word ptr [bx+2],dx
mov ax,2000h
mov ds,ax
jmp dword ptr ds:[1000h]
code ends
end start | | |
|
|
|
|
[第2楼]
[ 回复时间:2010-03-22 23:25 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-01-02 17:21 |
|
|
|
|
|
[第3楼]
[ 回复时间:2011-06-30 19:02 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-01-17 12:29 |
用debug编辑代码13B9:0105 jmp dword ptr es:[1000]
^ Error
出错是因为debug 不支持这样编写
上面指令应分为两行编写:
-a
13B9:0105 mov ax,2000
13B9:0108 mov ds,ax
13B9:010A es:
13B9:010B jmp far ptr [1000] | | |
|
|
|
|
[第4楼]
[ 回复时间:2011-07-01 11:14 ]
[引用]
[回复]
[ top ] | |
荣誉值:1
信誉值:0
注册日期:2011-05-30 14:33 |
|
|
|
|
|
[第5楼]
[ 回复时间:2012-11-17 20:31 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2012-11-16 13:28 |
难怪在debug中单步执行的时候看到而是es:会另为一行,那在debug中是不是也不允许出现 mov al,'a'是不是这样格式也只能在编译器中编写? | | |
|
|
|
|
[第6楼]
[ 回复时间:2012-11-18 02:08 ]
[引用]
[回复]
[ top ] | |
荣誉值:118
信誉值:0
注册日期:2011-07-07 22:59 |
|
|
|
|
|
[第7楼]
[ 回复时间:2012-11-18 19:28 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2012-11-16 13:28 |
在debug中不行,只能在编译器中,就是想知道到底什么时候可以直接输入,除了用终端的时候 | | |