微機cpu的指令系統
5.2.2 標誌位操作指令
標誌位操作指令是一組對標誌位置位、復位、儲存和恢復等操作的指令。
1、進製cf操作指令
a、清進製指令clc(clear carry flag):cf←0
b、置進製指令stc(set carry flag):cf←1
c、進製取反指令cmc(complement carry flag):cf←not cf
2、方向位df操作指令
a、清方向位指令cld(clear direction
flag):df←0
b、置方向位指令std(set direction flag):df←1
3、中斷允許位if操作指令
a、清中斷允許位指令cli(clear interrupt
flag):if←0
其功能是不允許可遮蔽的外部中斷來中斷其後程式段的執行。
b、置中斷允許位指令sti(set interrupt
flag):if←1
其功能是恢復可遮蔽的外部中斷的中斷響應功能,通常是與cli成對使用的。
4、取標誌位操作指令
a、lahf(load ah from
flags):ah←flags的低8位
b、sahf(store ah in flags):flags的低8位←ah
5、標誌位堆疊操作指令
a、pushf/pushfd(push flags onto
stack):把16位/32位標誌暫存器進棧;
b、popf/popfd(pop flags off
stack):把16位/32位標誌暫存器出棧;
6、邏輯操作指令的小結
下面是學習標誌位指令的控制項,瀏覽者可以運用此類指令,**標誌暫存器的相應變化。
5.2.3 算術運算指令
算術運算指令是反映cpu計算能力的一組指令,也是程式設計時經常使用的一組指令。它包括:加、減、乘、除及其相關的輔助指令。
該組指令的運算元可以是8位、16位和32位(80386+)。當儲存單元是該類指令的運算元時,該運算元的定址方式可以是任意一種儲存單元定址方式。
1、加法指令
a、加法指令add(add binary numbers instruction)
指令的格式:add reg/mem, reg/mem/imm
受影響的標誌位:af、cf、of、pf、sf和zf
指令的功能是把源運算元的值加到目的運算元中。
b、帶進製加指令adc(add with carry instruction)
指令的格式:adc reg/mem,
reg/mem/imm
受影響的標誌位:af、cf、of、pf、sf和zf
指令的功能是把源運算元和進製標誌位cf的值(0/1)一起加到目的運算元中。
c、加1指令inc(increment by 1 instruction)
指令的格式:inc
reg/mem
受影響的標誌位:af、of、pf、sf和zf,不影響cf
指令的功能是把運算元的值加1。
d、交換加指令xadd(exchange and add)
指令的格式:xadd reg/mem,
reg ;80486+
受影響的標誌位:af、cf、of、pf、sf和zf
指令的功能是先交換兩個運算元的值,再進行算術「加」法操作。
例5.3 已知有二個32位數d1和d2(用資料型別dd說明),編寫程式片段把d2的值加到d1中。
解:32位數d1和d2在記憶體中如下所示。
方法1:用16位暫存器編寫程式
mov ax, word ptr d1 ;由於d1是雙字型別,必須使用強制型別說明符。以下同。
mov dx, word ptr d1+2 ;(dx,ax)構成乙個32位資料
add ax, word ptr d2 ;低字相加
adc dx, word ptr d2+2 ;高字相加。在低字相加時,有可能會產生「進製」
mov word ptr d1, ax ;低字送給d1的低字
mov word ptr d1+2, dx ;高字送給d1的高字
方法2:用32位暫存器編寫程式
mov eax, d1
add eax, d2
mov d1, eax
從上面兩段程式不難看出:用32位暫存器來處理32位資料顯得簡單、明了,而16位微機雖然也能處理32位資料,但做起來就要複雜一些。
下面是學習和掌握加法類指令的控制項,可模擬執行add、adc、inc、xadd、clc、stc和cmc等指令。用滑鼠左鍵單擊暫存器列表框中指定的暫存器,則可修改其值。後面其它控制項的有關操作與此相一致,不再說明。從上面兩段程式不難看出:用32位暫存器來處理32位資料顯得簡單、明了,而16位微機雖然也能處理32位資料,但做起來就要複雜一些。
組合語言從入門到精通 標誌位的說明
16位標誌暫存器 共用了9個標誌位,它們主要用來反映cpu的狀態和運算結果的特徵。標誌位的分布如下表所示。1514 1312 111098 7654 3210 ofdf iftf sfzf afpf cf32位標誌暫存器 32位cpu也把標誌暫存器擴充套件到32位,記為eflags。它新增加了四個控...
從機器語言到組合語言
機器語言是計算機唯一能接受和執行的語言。機器語言由二進位製碼組成,每一串二進位製碼叫做一條指令。一條指令規定了計算機執行的乙個動作。一台計算機所能懂得的指令的全體,叫做這個計算機的指令系統。不同型號的計算機的指令系統不同。指令通常由幾個位元組組成,第乙個位元組是操作碼,它規定了計算機要執行的基本操作...
組合語言從入門到精通 通用暫存器功能的說明
1 資料暫存器 資料暫存器主要用來儲存運算元和運算結果等資訊,從而節省讀取運算元所需占用匯流排和訪問儲存器的時間。32位cpu有4個32位的通用暫存器eax ebx ecx和edx。對低16位資料的訪問,不會影響高16位的資料。這些低16位暫存器分別命名為 ax bx cx和dx,它和先前的cpu中...