xlr123 发表于 2020-2-15 21:56:52

王爽汇编实验二中为什么2000:0~2000:f中的内容会发生改变的问题

本帖最后由 xlr123 于 2020-2-15 22:04 编辑

显示出的073F和0108我知道是寄存器CS和IP中的数据,但是01A3是啥呀,我看到有人说是标志寄存器中的值,然后去翻了翻关于标志寄存器的介绍,还是不知道01A3是怎么得出来的啊...坐等大神解答!

xlr123 发表于 2020-2-15 21:57:55

本帖最后由 xlr123 于 2020-2-15 22:01 编辑

。。

xlr123 发表于 2020-2-15 22:00:18

-d 2000:0 f
2000:0000 00 00 00 00 00 00 00 20-00 00 08 01 3F 07 A3 01

人造人 发表于 2020-2-15 22:56:26

发代码

xlr123 发表于 2020-2-16 11:49:26

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 内存单元中的值,发现内容改变了

人造人 发表于 2020-2-16 12:04:57

xlr123 发表于 2020-2-16 11:49
用e命令将2000:0~2000:f 内存单元中的值设置为0
然后用t命令执行mov ax,2000
mov ss,ax


debug调试器的工作依赖中断机制,中断机制需要使用栈
继续往后学吧,后面解释过了

人造人 发表于 2020-2-16 13:18:02




我又仔细研究了一下,发现这个不是flag寄存器
至于这玩意是什么,我也不清楚,但可以肯定不是flag寄存器的值

xlr123 发表于 2020-2-17 13:09:32

人造人 发表于 2020-2-16 13:18
我又仔细研究了一下,发现这个不是flag寄存器
至于这玩意是什么,我也不清楚,但可以肯定不是flag寄 ...

好的,万分感谢

yjcoke 发表于 2020-2-17 22:32:32

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
所以没有错啊!你说的错误是什么

人造人 发表于 2020-2-17 22:51:43

yjcoke 发表于 2020-2-17 22:32
mov ax,2000H   设置ax2000H
mov ss,ax         设置栈地址等于2000H
mov sp,10      设置栈底等于10 ...

所以没有错啊!你说的错误是什么

他有说错误吗?

lxjia 发表于 2020-2-18 16:36:19

人造人 发表于 2020-2-16 12:04
debug调试器的工作依赖中断机制,中断机制需要使用栈
继续往后学吧,后面解释过了

谢谢大佬

405794672 发表于 2020-2-24 19:37:59

你不是废话吗。debug是16进制,你代码用十进制,位置都不一样

gang19840815 发表于 2020-2-24 22:47:40

kankan

major_lyu 发表于 2020-2-25 13:20:10

xlr123 发表于 2020-2-16 11:49
用e命令将2000:0~2000:f 内存单元中的值设置为0
然后用t命令执行mov ax,2000
mov ss,ax


感觉这个01A3像是栈顶标志一样的。你每push一个数,这个值会自动往上移动
页: [1]
查看完整版本: 王爽汇编实验二中为什么2000:0~2000:f中的内容会发生改变的问题