. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->第一个程序
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  依旧实验3的问题  [待解决] 回复[ 3次 ]   点击[ 385次 ]  
zd0132
[帖 主]   [ 发表时间:2009-06-24 19:12 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-04-19 22:46
debug t1.exe后
t单步
第一个t后的下一条指令是:mov ss,ax
第二个t后的下一条指令怎么是:add sp,+04h
mov sp,0哪去了?
--------------
程序:
assume cs:codesg
codesg segment
    mov ax,2000h
    mov ss,ax
    mov sp,0
    add sp,4
    pop ax
    pop bx
    push ax
    push bx
    pop ax
    pop bx
    mov ax,4c00h
    int 21h
    codesg ends
end
tsembrace
[第1楼]   [ 回复时间:2009-06-25 11:28 ]   [引用]   [回复]   [ top ] 
荣誉值:31
信誉值:3
注册日期:2009-06-15 19:20
仔细看书,一起学习。。。
书里提到过,凡“mov ss, .."的指令在debug用t执行后,会顺带执行该指令的下一个指令,下一个t指向再下一个指令。我觉得不必深究,知道就行,现在我们的知识估计也深究不了。
acool
[第2楼]   [ 回复时间:2009-06-26 10:38 ]   [引用]   [回复]   [ top ] 
荣誉值:49
信誉值:0
注册日期:2008-10-15 16:15
add sp,4 
----------
在实dos下调试没问题。

在虚拟dos下。把这个改成add sp,8,原因涉及到后面学习的中断和操作系统的保护模式,这里不用深究。
szqh97
[第3楼]   [ 回复时间:2009-08-08 19:18 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-08-06 20:22
估计你没仔细看书,书上有的
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved