|
主题 : : 两个出现在检测点6.1中的问题? [已解决] |
回复[ 4次 ]
点击[ 595次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2010-08-11 08:27 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:6
注册日期:2010-07-31 15:39 |
assume cs:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
dw 0,0,0,0,0,0,0,0,0,0
start: mov ax,cs
mov ss,ax
mov sp,24h
mov ax,0
mov ds,ax
mov bx,0
mov cx,8
s: push [bx]
pop cs:[bx]
add bx,2
loop s
mov ax,4c00h
int 21h
codesg ends
end start
省略编译连接,追踪2..exe工程中出现
-d cs:0 f
0B70:0000 68 10 A7 00 BB 13 71 05-16 00 A3 03 B1 13 71 05 h.....q.......q.
-p
Program terminated normally
-d cs:0 f
0B70:0000 68 10 A7 00 BB 13 71 05-16 00 A3 03 13 3E 4F 03 h.....q......>O.
-为什么p指令过后 同样的“-d cs:0 f”却呈现不同的结果?
为什么我的程序是2.asm ,编译连接完后得到2.exe,我在cmd里运行2,在查看d cs(我已得到):0 f 却没改变,而我追踪程序完成后查看d cs:0 f 便实现了效果!难道运行和追踪完成得到的结果会不一样吗???我很困惑,望高手指导! | | |
|
|
|
|
[第1楼]
[ 回复时间:2010-08-11 09:42 ]
[引用]
[回复]
[ top ] | |
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19 |
没必要用栈吧,直接用相对寻址即可
mov ax,code
mov ds,ax
mov cx,8
mov bx,0
s:
mov ax,[bx]
mov [bx+10h],ax
add bx,2
loop s | | |
|
|
|
|
[第2楼]
[ 回复时间:2010-08-11 14:35 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:6
注册日期:2010-07-31 15:39 |
没必要用栈吧,直接用相对寻址即可
mov ax,code
mov ds,ax
mov cx,8
mov bx,0
s:
mov ax,[bx]
mov [bx+10h],ax
add bx,2
loop s
------------------
回复:题目里是先给了push [bx]
再叫填空。不过你的方法很好~ | | |
|
|
|
|
[第3楼]
[ 回复时间:2010-08-11 16:04 ]
[引用]
[回复]
[ top ] | |
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19 |
没必要用栈吧,直接用相对寻址即可
mov ax,code
mov ds,ax
mov cx,8
mov bx,0
s:
mov ax,[bx]
mov [bx+10h],ax
add bx,2
loop s
------------------
回复:题目里是先给了push [bx]
再叫填空。不过你的方法很好~
------------------
回复:哦~~~ | | |
|
|
|
|
[第4楼]
[ 回复时间:2010-08-20 13:16 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:6
注册日期:2010-07-31 15:39 |
此贴由 贴主 于 [ 2010-08-20 13:16 ] 结贴。 结贴原因:问题已解决 | | |
|