
汇编语言里 把基址指针寄存器压入堆栈 是什么意思、?
1个回答
展开全部
只有bp作为间址寄存器时,段寄存器才缺省使用ss。
用bx,
si,
di这三个寄存器作为间址寄存器时,都缺省使用ds作为段寄存器。
sp是不可以作为间址寄存器使用的。它只是在堆栈操作时(比如push,call等)与ss配合指示栈顶。它也可作为一般数据寄存器存放数据和参与运算。不过,由于堆栈的重要性,一般除了特别需要处理堆栈时才使用外,应尽量避免用它作数据寄存或运算。
要看出标志位的值,最好是掌握标志位的英文表示。
比如:
溢出标志of是overflow
flag的缩写,在debug中用"nv"表示not
overflow(of=0),用"ov"表示overflow(of=1)
方向标志df表示串操作时地址改变的方向,df=0是地址增加,向上调整,用"up"表示。df=1是减小,用"dn"(down)
"ei"是enable
interrupt,允许中断,if=1.
"di"是deny
interrupt
,拒绝中断,if=0
"zr"是zero,运算结果为0,zf=1。
“nz”是not
zero,结果不是0,zf=0
其它几个都类似这样,一般教材上都有解释。
这样搞懂英文含义去记,就容易了。
当然,也可以死记硬背,只是效率低,难记,且记不牢。
用bx,
si,
di这三个寄存器作为间址寄存器时,都缺省使用ds作为段寄存器。
sp是不可以作为间址寄存器使用的。它只是在堆栈操作时(比如push,call等)与ss配合指示栈顶。它也可作为一般数据寄存器存放数据和参与运算。不过,由于堆栈的重要性,一般除了特别需要处理堆栈时才使用外,应尽量避免用它作数据寄存或运算。
要看出标志位的值,最好是掌握标志位的英文表示。
比如:
溢出标志of是overflow
flag的缩写,在debug中用"nv"表示not
overflow(of=0),用"ov"表示overflow(of=1)
方向标志df表示串操作时地址改变的方向,df=0是地址增加,向上调整,用"up"表示。df=1是减小,用"dn"(down)
"ei"是enable
interrupt,允许中断,if=1.
"di"是deny
interrupt
,拒绝中断,if=0
"zr"是zero,运算结果为0,zf=1。
“nz”是not
zero,结果不是0,zf=0
其它几个都类似这样,一般教材上都有解释。
这样搞懂英文含义去记,就容易了。
当然,也可以死记硬背,只是效率低,难记,且记不牢。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询