mhhnjuol 发表于 2015-1-19 14:20:17

t命令执行了两步

本帖最后由 mhhnjuol 于 2015-1-19 14:21 编辑

assume cs:code, ds:a,ds:b, ds:d

a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
d segment
db 0,0,0,0,0,0,0,0
d ends

code segment

start :
mov ax, a
mov ds , ax
mov ax, b
mov es, ax
mov ax, d
mov ss, ax
mov cx, 8
mov bx, 0
s:mov al,
addal, es:
mov ss:, al
inc bx
loop s
mov ax, 4c00H
int 21H
code ends
end start

在debug执行mov ss,ax时,下一条指令mov cx, 8也会被一起执行,这是为什么,求解答

傲天 发表于 2015-1-19 21:08:03

用t执行完mov ss,ax以后,下条指令自动执行,不管你是什么指令,全是一起执行的,栈操作后有一个SP+2或者-2,那是CPU自动执行的,所以后面的指令也一并执行了

mhhnjuol 发表于 2015-1-20 11:20:08

谢谢啦,终于懂了:big

zlknife 发表于 2015-1-20 18:40:04

栈操作后有一个SP+2或者-2,那是CPU自动执行的,所以后面的指令也一并执行.
页: [1]
查看完整版本: t命令执行了两步