王爽汇编实验二中为什么2000:0~2000:f中的内容会发生改变的问题
本帖最后由 xlr123 于 2020-2-15 22:04 编辑显示出的073F和0108我知道是寄存器CS和IP中的数据,但是01A3是啥呀,我看到有人说是标志寄存器中的值,然后去翻了翻关于标志寄存器的介绍,还是不知道01A3是怎么得出来的啊...坐等大神解答! 本帖最后由 xlr123 于 2020-2-15 22:01 编辑
。。 -d 2000:0 f
2000:0000 00 00 00 00 00 00 00 20-00 00 08 01 3F 07 A3 01 发代码 mov ax,2000
mov ss,ax
mov sp,10
mov ax,3123
push ax
mov ax,3366
push ax
用e命令将2000:0~2000:f 内存单元中的值设置为0
然后用t命令执行mov ax,2000
mov ss,ax
mov sp,10后再用d命令查看2000:0~2000:f 内存单元中的值,发现内容改变了 xlr123 发表于 2020-2-16 11:49
用e命令将2000:0~2000:f 内存单元中的值设置为0
然后用t命令执行mov ax,2000
mov ss,ax
debug调试器的工作依赖中断机制,中断机制需要使用栈
继续往后学吧,后面解释过了
我又仔细研究了一下,发现这个不是flag寄存器
至于这玩意是什么,我也不清楚,但可以肯定不是flag寄存器的值 人造人 发表于 2020-2-16 13:18
我又仔细研究了一下,发现这个不是flag寄存器
至于这玩意是什么,我也不清楚,但可以肯定不是flag寄 ...
好的,万分感谢 mov ax,2000H 设置ax2000H
mov ss,ax 设置栈地址等于2000H
mov sp,10 设置栈底等于10H
mov ax,3123 设置ax等于3123H
push ax 3123H入栈位置在2000:E-F 栈底等于E
mov ax,3366 设置ax等于3366H
push ax 3366H入栈,位置在2000:C-D栈底等于C
所以没有错啊!你说的错误是什么 yjcoke 发表于 2020-2-17 22:32
mov ax,2000H 设置ax2000H
mov ss,ax 设置栈地址等于2000H
mov sp,10 设置栈底等于10 ...
所以没有错啊!你说的错误是什么
他有说错误吗? 人造人 发表于 2020-2-16 12:04
debug调试器的工作依赖中断机制,中断机制需要使用栈
继续往后学吧,后面解释过了
谢谢大佬
你不是废话吗。debug是16进制,你代码用十进制,位置都不一样 kankan xlr123 发表于 2020-2-16 11:49
用e命令将2000:0~2000:f 内存单元中的值设置为0
然后用t命令执行mov ax,2000
mov ss,ax
感觉这个01A3像是栈顶标志一样的。你每push一个数,这个值会自动往上移动
页:
[1]