标志寄存器的问题。
pushfpop ax
标志寄存器的值是按照怎么一个算法装入栈的?
算法?用不到吧
标志寄存器本就是一个16位的寄存器
刚好直接入栈,把它当成一个通用寄存器操作就可以了,只不过指令不同
如 push ax
popf
把ax的值赋给标志寄存器
有不了解的,再看下书的第11章 assume cs:exe,ss:zhan
zhan segment
db 16 dup (0)
zhan ends
exe segment
go: mov ax,zhan
mov ss,ax
mov sp,16
mov al,0ffH
mov bl,1H
add al,bl
pushf
pop ax
exe ends
end go
ax 的值是3257,那这个3257是标志寄存器的值,ADD后CF和PF的值是1,还有个是ac现在没学到,就是说有3个标志寄存器的值是1,那是通过怎样一个转变变成了3257的? 本帖最后由 king嗜血法师 于 2011-6-22 03:09 编辑
像检测点11.4,不用debug。
直接用口算能得出结果吗?
标志寄存器是以二进制的8个位组成,全部是1来表示11111111,转换成16进制也是等于FF,那ax最多不会超过00FFH,有点搞蒙了。:dizzy:
页:
[1]