七、80x86指令系統(tǒng)
(一)8086指令系統(tǒng)
8086/8088指令系統(tǒng)是整個80x86系列微處理器的基礎,按功能可以分為六種類型。
1.傳送指令
傳送指令用于在存儲單元、寄存器、輸入/輸出端口之間傳送地址或數據。
①通用數據傳送指令
MOV指令:該指令可以將一個立即數傳送到寄存器或存儲單元中,也可以在寄存器與寄存器之間、寄存器與存儲器之間傳送字數據或字節(jié)數據。例如:將一個立即數傳送到寄存器中的指令MOV AL,05H;在兩個寄存器之間傳送字節(jié)數據的指令MOV AL,BL;在寄存器和存儲器之間傳送數據的指令MOV SI,[BX+5AH]。
XCHG指令:該指令可以將源操作數和目的操作數進行交換,但操作數可以是寄存器或存儲單元,不能是段寄存器或立即數,也不能同時為兩個存儲器操作數。
PUSH指令:PUSH指令是對一個16位操作數執(zhí)行進棧操作,這是在一個操作數和堆棧之間進行數據傳送,而不是在兩個操作數之間進行數據傳送。
POP指令:POP指令是將一個16位操作數執(zhí)行出棧操作,這也是在一個操作數和堆棧之間進行數據傳送。
XLAT指令:該指令專門用于在AL寄存器與字節(jié)表中某一存儲單元之間進行數據傳送。其中字節(jié)表的首地址存放在BX基址寄存器中,根據AL設置的偏移地址,可以將該單元的內容傳送到AL累加寄存器中。
、谳斎/輸出指令
該指令專門用于在累加器和I/O端口之間進行數據傳送操作。輸入/輸出的工作原理:CPU使用AL或AX寄存器接收數據或發(fā)送數據,最多可提供64K個8位端口地址,或32K個16位端口地址。當端口地址小于256時使用直接尋址來獲得操作數,即在指令中直接指定端口地址;當端口地址超過256時使用間接尋址來獲得操作數,即先將端口地址放到DX寄存器中,然后利用IN指令或OUT指令進行輸入/輸出操作。例如:IN AX,28H是從I/O端口28H輸入一個字到AX寄存器中;OUT 5,AL是從AL寄存器輸出一個字節(jié)到I/O端口5中。
、鄣刂穫魉椭噶
LEA指令:該指令是將源操作數的偏移地址傳送到通用寄存器、指針寄存器或變址寄存器中,要求目的操作數是一個16位寄存器,源操作數是一個存儲器地址,這樣就可以獲得指令執(zhí)行所需的有效地址。
LDS指令:該指令是將源操作數指定的連續(xù)四個存儲單元中存放的32位地址指針(包括一個段地址和一個偏移量)傳送到兩個16位寄存器,其中兩個高位字節(jié)(段基址)送段寄存器DS,兩個低位字節(jié)(指偏移量)送指令指定的16位通用寄存器,這樣就獲得指令執(zhí)行所需的地址指針。LES指令:該指令是將源操作數指定的連續(xù)四個存儲單元中所存放的32位地址指針(一個段地址和一個偏移量)傳送到指令指定的16位通用寄存器和段寄存器ES中。其中兩個高位字節(jié)(段基址)送段寄存器ES,兩個低位字節(jié)(指偏移量)送指令指定的16位通用寄存器,這樣就獲得指令執(zhí)行所需的地址指針。④標志傳送指令
該指令用于對標志寄存器中的內容進行數據傳送操作。
2.算術運算指令
在8086/8088微處理器中,算術運算指令可用于二進制數和無符號十進數的各種算術運算。二進制數可以是單字或雙字節(jié),也可以是有符號數或無符號數。十進制數直接使用BCD碼,以表示無符號(Unsigned)的十進制數。
(1)加法指令
、貯DD
格式: ADD OPRD1,OPRD2
功能:實現兩個操作數相加,結果送原來存放目的操作數的地方。目的操作數可以是累加器、通用寄存器或存儲器操作數。
加法指令可以完成累加器與立即數,或與任一通用寄存器、或與存儲單元的內容相加,結果放在累加器中。
說明:加法指令可以完成任一通用寄存器與任一通用寄存器,或與立即數、或與存儲單元的內容相同,其“和”放在通用寄存器中。
加法指令也可以實現存儲器操作數與立即數,或與累加器、或與通用寄存器內容相加,其“和”放在存儲單元中。
注意:存儲器操作數與立即數相加時,必須指明操作數的類型。ADD指令的執(zhí)行結果將影響標志位CF、AF、PF、ZF、SF和OF。
②ADC
格式: ADC OPRD1,OPRD2
功能:ADC指令與ADD類似,不同之處在于兩個操作數相加時,還要加上進位標志CF的當前值,結果送原來存放目的操作數的地方。
說明:指令執(zhí)行結果對標志值的影響與ADD相同。
、跧NC
格式: INC OPRD
功能:操作數OPRD加1。操作數可以是通用寄存器,也可為存儲器操作數。說明:該指令執(zhí)行結果影響標志位SF、ZF、AF、PF和OF,而對CF無影響。④AAA
功能:AAA是未組合BCD碼加法調整指令
。它對在AL中兩個未組合的十進制數相加的結果進行校正,產生一個未組合的十進制和數。⑤DAA
功能:DAA為十進制加法調整指令。它對AL中兩個組合的十進制數相加的結果進行校正,產生一個組合的十進制和數。
相關推薦:計算機等級考試三級PC技術常見系統(tǒng)命令行北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |