|
主题 : : 这个是为什么啊 ? [待解决] |
回复[ 5次 ]
点击[ 348次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2010-01-20 19:41 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-01-15 22:17 |
mov ax,123b
mov ds,ax
add ax,[0]
add ax,[2]
add ax,[4]
-t
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=123B ES=0B5C SS=0B5C CS=0B5C IP=0147 NV UP EI PL ZR NA PE NC
0B5C:0147 B83B12 MOV AX,123B
-t
AX=123B BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=123B ES=0B5C SS=0B5C CS=0B5C IP=014A NV UP EI PL ZR NA PE NC
0B5C:014A 8ED8 MOV DS,AX
-t
AX=123B BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=123B ES=0B5C SS=0B5C CS=0B5C IP=012E NV UP EI PL ZR NA PE NC
0B5C:012E B80000 MOV AX,0000
-t
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=123B ES=0B5C SS=0B5C CS=0B5C IP=0131 NV UP EI PL ZR NA PE NC
0B5C:0131 A10000 MOV AX,[0000] DS:0000=0000
-t
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=123B ES=0B5C SS=0B5C CS=0B5C IP=0134 NV UP EI PL ZR NA PE NC
0B5C:0134 B83B12 MOV AX,123B
-t
AX=123B BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=123B ES=0B5C SS=0B5C CS=0B5C IP=0137 NV UP EI PL ZR NA PE NC
0B5C:0137 8ED8 MOV DS,AX
-t
AX=123B BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=123B ES=0B5C SS=0B5C CS=0B5C IP=0139 NV UP EI PL ZR NA PE NC
0B5C:0139 B80000 MOV AX,0000
-t
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=123B ES=0B5C SS=0B5C CS=0B5C IP=013C NV UP EI PL ZR NA PE NC
0B5C:013C 03060000 ADD AX,[0000] DS:0000=0000
-t
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=123B ES=0B5C SS=0B5C CS=0B5C IP=0140 NV UP EI PL ZR NA PE NC
0B5C:0140 03060200 ADD AX,[0002] DS:0002=0000
-t
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=123B ES=0B5C SS=0B5C CS=0B5C IP=0144 NV UP EI PL ZR NA PE NC
0B5C:0144 A10400 MOV AX,[0004] DS:0004=0000
- | | |
|
|
|
|
[第1楼]
[ 回复时间:2010-01-20 19:42 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-01-15 22:17 |
我想提问的是 :为什么 mov ax,123b mov ds,ax 执行了两次啊 ??? | | |
|
|
|
|
[第2楼]
[ 回复时间:2010-01-20 20:39 ]
[引用]
[回复]
[ top ] | |
荣誉值:307
信誉值:0
注册日期:2009-03-15 23:46 |
你是不是想知道为什么不
mov ds,123b
?
是段寄存器没有直接接受立即数的功能。
由于段寄存器仅用于提供段基址的高16位,因此无须过多的功能。 | | |
|
|
|
|
[第3楼]
[ 回复时间:2010-01-21 10:18 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2010-01-13 10:56 |
楼主在误导啊,我输入代码做的实验和你的实验不符合!!!
代码都放在内存了,执行怎么会多出指令呢,肯定不会。这又不是编译器编译生成的。
---------------------------------
以下是实验:
-a
0B2E:0100 mov ax,123b
0B2E:0103 mov ds,ax
0B2E:0105 add ax,[0]
0B2E:0109 add ax,[2]
0B2E:010D add ax,[4]
0B2E:0111
-t
AX=123B BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0B2E ES=0B2E SS=0B2E CS=0B2E IP=0103 NV UP EI PL NZ NA PO NC
0B2E:0103 8ED8 MOV DS,AX
-t
AX=123B BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=123B ES=0B2E SS=0B2E CS=0B2E IP=0105 NV UP EI PL NZ NA PO NC
0B2E:0105 03060000 ADD AX,[0000] DS:0000=0000
-t
AX=123B BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=123B ES=0B2E SS=0B2E CS=0B2E IP=0109 NV UP EI PL NZ NA PO NC
0B2E:0109 03060200 ADD AX,[0002] DS:0002=0000
-t
AX=123B BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=123B ES=0B2E SS=0B2E CS=0B2E IP=010D NV UP EI PL NZ NA PO NC
0B2E:010D 03060400 ADD AX,[0004] DS:0004=0000
-t | | |
|
|
|
|
[第4楼]
[ 回复时间:2010-01-21 10:42 ]
[引用]
[回复]
[ top ] | |
荣誉值:307
信誉值:0
注册日期:2009-03-15 23:46 |
|
|
|
|
|
[第5楼]
[ 回复时间:2010-01-21 18:43 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-01-15 22:17 |
哦 对不住大家了,是我操作失误了,因为我之前输入错了 ,又在这个基础上面输入了,就导致了这个结果, | | |