終于到了最后一個寄存器了--標志寄存器(叫她flag),8086是16位
(1)標志寄存器作用:
a、用在存儲相關指令的某些執行結果
b、用來為CPU執行相關指令提供行為依據
c、用來控制CPU的相關工作方式
(2)flag存儲的信息稱為程序狀態字(PSW)
(3)各位詳解:
a、第0位 CF:進位(借位)標志位,對無符號運算有意義
b、第2位 PF:奇偶標志位, 偶數PF=1
c、第6位 ZF:結果是否是0
d、第7位 SF:結果是否為負
e、第10位 DF:方向標志位
DF:0 每次操作后SI、DI遞增,使用CLD置DF為0
DF:1 每次操作后SI、DI遞減,使用STD置DF為1
f、第11位 OF:溢出標志位,對有符號運算有意義
(4)相關指令
a、adc == add + CF ,用于任意大數的加法
b、sbb == sub - CF, 用于任意大數的減法
c、cmp
je/jb/jnb/ja/jna 配套為有條件轉移
d、 rep
movsb/mobsw 配合DF用于內存拷貝 ,相當于
s : ((es)*16+(di)) = ((ds)*16+(si))
inc si ;DF為0的情況,為1則是dec si
inc di
loop s
e、pushf :將FLAG壓棧 / POPF : 將棧中內容彈出寫入標志寄存器中
posted on 2007-06-13 22:50
merlinfang 閱讀(1799)
評論(0) 編輯 收藏 引用 所屬分類:
匯編語言