為企業(yè)提供成都網(wǎng)站設計、網(wǎng)站建設、網(wǎng)站優(yōu)化、營銷型網(wǎng)站建設、競價托管、品牌運營等營銷獲客服務。成都創(chuàng)新互聯(lián)公司擁有網(wǎng)絡營銷運營團隊,以豐富的互聯(lián)網(wǎng)營銷經(jīng)驗助力企業(yè)精準獲客,真正落地解決中小企業(yè)營銷獲客難題,做到“讓獲客更簡單”。自創(chuàng)立至今,成功用技術實力解決了企業(yè)“網(wǎng)站建設、網(wǎng)絡品牌塑造、網(wǎng)絡營銷”三大難題,同時降低了營銷成本,提高了有效客戶轉(zhuǎn)化率,獲得了眾多企業(yè)客戶的高度認可!
80x86 尋址方式與指令系統(tǒng)簡介
【課前思考】
?。?) 什么是指令和指令系統(tǒng)?指令在什么時候由哪部分來執(zhí)行?
?。?) 8086匯編語言指令由幾部分組成?各部分的作用是什么?
?。?) 8086匯編語言指令可以有幾個操作數(shù)?指令中指定的操作數(shù)可能存放在哪里?
?。?) 什么是尋址方式?8086匯編語言提供了幾種尋址方式?
(5) 各種尋址方式所確定的有效地址是什么?
?。?) 在存儲器尋址方式中,為什么有時候要使用段跨越前綴?
?。?) 8086機器語言指令由哪幾個字節(jié)組成?為什么說匯編語言指令與機器指令是一一對應的?
?。?) 8086的指令系統(tǒng)按功能可分為幾組?
(9) 每條指令的功能、助記符、所支持的尋址方式、對標志位的影響、需要預置的參數(shù)以及隱含使用的或限定使用的寄存器等。
【學習目標】
熟練掌握8086各種尋址方式;熟悉8086常用指令的功能
【學習指南】
學習尋址方式時,要注意各種尋址方式所指定的操作數(shù)或操作數(shù)地址是什么;各種尋址方式形成操作數(shù)地址時,段寄存器和基址、變址寄存器的組合;各種尋址方式限定使用的寄存器。
學習指令系統(tǒng)時,要注意每條指令的功能,所支持的尋址方式、對標志位的影響、需要預置的參數(shù)以及隱含使用的或限定使用的寄存器等。
【難重點】
重點理解8086常用指令的功能,熟悉8086的各種尋址方式,這是進行匯編語言程序設計的基礎。
【知識點】
3.1 尋址方式
3.1.1 與數(shù)據(jù)有關的尋址方式
3.1.1.1 立即尋址方式
3.1.1.2 寄存器尋址方式
3.1.1.3 直接尋址方式
3.1.1.4 寄存器間接方式
3.1.1.5 寄存器相對尋址方式
3.1.1.6 基址變址尋址方式
3.1.1.7 相對基址變址尋址方式
3.1.2 與轉(zhuǎn)移地址有關的尋址方式
3.1.2.1 段內(nèi)直接尋址
3.1.2.2 段內(nèi)間接尋址
3.1.2.3 段間直接尋址
3.1.2.4 段間間接尋址
3.3 指令系統(tǒng)
3.3.1 數(shù)據(jù)傳送指令
3.3.1.1 通用數(shù)據(jù)傳送指令(MOV、PUSH、POP、XCHG)
3.3.1.2 累加器專用傳送指令(IN、OUT、XLAT)
3.3.1.3 地址傳送指令(LEA、LDS、LES)
3.3.1.4 標志寄存器傳送指令(LAHF、SAHF、PUSHF、POPF)
3.3.2 算術指令
3.3.2.1 加法指令(ADD、ADC、INC)
3.3.2.2 減法指令(SUB、SBB、DEC、NEG、CMP)
3.3.2.3 乘法指令(MUL、IMUL)
3.3.2.4 除法指令(DIV、IDIV)
3.3.2.5 符號擴展指令(CBW、CWD)
3.3.2.6十進制調(diào)整指令(DAA、DAS、AAA、AAS、AAM、AAD)
3.3.3 邏輯指令
3.3.3.1 邏輯運算指令(AND、OR、NOT、XOR、TEST)
3.3.3.2 移位指令(SHL、SAL、SHR、SAR、ROL、ROR、RCL、RCR)
3.3.4 串處理指令
3.3.4.1 設置方向標志指令(CLD、STD)
3.3.4.2 串處理指令(MOVSB/MOVSW、STOSB/STOSW、LODSB/LODSW、CMPSB/CMPSW、SCASB/SCASW)
3.3.4.3 串重復前綴(REP、REPE/REPZ、REPNE/REPNZ)
3.3.5 控制轉(zhuǎn)移指令
3.3.5.1 無條件轉(zhuǎn)移指令(JMP)
3.3.5.2條件轉(zhuǎn)移指令(JZ/JE、JNZ/JNE、JS、JNS、JO、JNO、JP、JNP、JB、JNB、JBE、JNBE、JL、JNL、JLE、JNLE、JCXZ)
3.3.5.3 循環(huán)指令(LOOP、LOOPZ/LOOPE、LOOPNZ、LOOPNE)
3.3.5.4 子程序調(diào)用和返回指令(CALL、RET)
3.3.5.5 中斷與中斷返回指令(INT、INTO、IRET)
3.3.6 處理器控制指令
3.3.6.1 標志位處理指令(CLC、CMC、STC、CLD、STD、CLI、STI)
3.3.6.2 處理機控制指令(NOP、HLT、WAIT、ESC、LOCK)
我們已經(jīng)知道計算機是通過執(zhí)行指令序列來解決問題的,因而每種計算機都有一組指令集供給用戶使用,這組指令集就稱為計算機的指令系統(tǒng)。本章說明8086的指令系統(tǒng)以及在指令中為取得操作數(shù)地址所使用的尋址方式(Addressing mode)。 計算機中的指令由操作碼字段和操作數(shù)字段兩部分組成。操作碼字段指示計算機所要執(zhí)行的操作,比如加、減運算;操作數(shù)字段指示指令執(zhí)行過程中所需要的操作數(shù),它既可以是操作數(shù)本身,也可以是操作數(shù)地址或地址的一部分,還可以是指向操作數(shù)地址的指針或其他有關操作數(shù)的信息。
操作數(shù)字段可以有一個、二個或三個,通常稱為一地址、二地址或三地址指令。8086的尋址方式包括與數(shù)據(jù)有關的尋址方式和與轉(zhuǎn)移地址有關的尋址方式,CPU根據(jù)這些尋址方式以不同的方法取得操作數(shù)。