• /  126
  • 下載費用: 29.9積分  

微機原理 第三章1.ppt

'微機原理 第三章1.ppt'
各種計算機語言的比較 機器語言 用機器碼表示,例如B8H、C3H。 匯編語言 用指令助記符表示機器碼,例如對應于機器碼B8H、C3H的助記符為MOV AX,BX 。 CPU不同,機器碼不同,助記符也不同。 高級語言 語言規范,可移植。第三章 8086/8088指令系統匯編語言指令的結構語法結構符合人類語言的共同特點——動作+對象指令操作碼→動作:做什么?指令操作數→對象:針對什么做動作?機器指令:指令的二進制代碼形式。如89D8H匯編指令:助記符形式的指令。 如:MOV AX,BX匯編語言指令操作碼助記符:與動作一一對應例: MOV AX,BX目/源操作數:操作對象第三章 8086/8088指令系統一、指令格式與尋址方式二、數據傳送類指令三、算術運算指令四、邏輯運算指令五、移位指令六、串操作指令七、控制轉移指令八、處理器控制指令一、指令格式與尋址方式 指令(Instruction)是指示CPU執行某種操作的命令; 指令系統(Instruction Set)是某一CPU所能執行的全部指令的集合,也稱為指令集; 8086/8088的指令系統完全相同。 指令是構成程序的基礎,程序是指令的有序組合,CPU執行程序就是執行一條條指令。 1、指令格式 2、尋址方式 1、指令格式(1)操作碼指定CPU執行某種操作,如傳送、運算等;(2)操作數為參與操作的數據,如寄存器中的數據或內存單元中的數據等。 ①包含一個操作數的指令稱為單操作數指令; ②包含兩個操作數的指令稱為雙操作數指令; ③在指令執行過程中使用的操作數,保持原值不變的稱為源操作數; ④不保留原值而將處理結果存入其中的稱為目的操作數 。 操作碼 操作數 一條指令通常包括兩部分:操作碼和操作數。格式:2、尋址方式(Addressing Mode) (1)指令尋址方式 指令通常是順序存放的,因此只要通過對指令指針IP自動加1,便形成下條指令地址; 只有當遇到轉移指令或調用指令時,根據轉移目標去修改IP或CS。(2)操作數尋址方式 所謂操作數尋址方式,就是尋找指令中所需操作數的方法。2、尋址方式(Addressing Mode) 給出操作數的可能的方式:1)由操作碼隱含地指定2)由指令直接給出操作數3)存放于CPU內部的寄存器中4)存放于存儲器單元內。這時指令中給出的是操作數所在單元的地址,或者是產生該地址的計算方法;5)來自I/O端口2、尋址方式(Addressing Mode)1)由操作碼隱含地指定2)由指令直接給出操作數3)存放于CPU內部的寄存器中4)存放于存儲器單元內。5)來自I/O端口(1)隱含尋址 指令中不指明操作數,隱含在操作碼中。 如:乘法指令 MUL BX ;(DX,AX) ←(AX) ×(BX) 乘法是雙操作數指令,但指令中給出單操作數(BX中數),另一操作數隱含在AX中,同樣乘積要存放的地址也是隱含的。 其實該類尋址也是后面尋址中某種,上述指令就屬于寄存器尋址。(2)立即(數)尋址 當操作數就在指令中時,稱為立即(數)尋址。這種操作數稱為立即數,8位或16位均可。如: ① MOV AL,12H 說明:這條指令的功能就是將立即數12H傳送到寄存器AL中。 執行完該條指令后, AL=12H 這是一條雙操作數指令。其中:MOV就是操作碼,立即數12H稱為源操作數;寄存器AL稱為目的操作數。(2)立即(數)尋址 ② MOV AX,1234H 說明:這條指令的功能就是將立即數1234H傳送到寄存器AX中。 執行完該條指令后, AX=1234H(3)寄存器尋址(Segment Addressing) 當操作數在寄存器中時為寄存器尋址(或稱寄存器直接尋址)。如: ① MOV AL,12H 說明:目的操作數AL即為寄存器尋址。 ② MOV AX,BX 說明:這條指令的功能就是將寄存器BX的內容傳送到寄存器AX中。 執行完該條指令后,AX的內容和BX的內容一樣,表示成AX=BX;存儲器尋址 (Memory Addressing) 當操作數在內存中時為內存尋址,稱其為內存操作數。 注意:一條指令中只允許有一個內存操作數! 內存尋址時,指令中給出的是操作數的有效地址EA或產生EA的計算方式。 EA即是邏輯地址中的偏移地址,物理地址PA=段基址×16+EA,EA=BX/BP(基址)+SI/DI(變址)+8/16位位移量。內存尋址 (Memory Addressing)(4)直接尋址(5)寄存器間接尋址(6)寄存器相對尋址(7)基址變址尋址(8)相對基址變址尋址內存尋址(4)直接尋址方式 操作數存放在存儲器單元中,由指令直接給出該單元的有效地址EA(即16位段內偏移量)。例:MOV AX,[0016H] 尋址過程示意(5)寄存器間接尋址方式 操作數存放在存儲器單元中,指令給出的16位寄存器值就是該單元的EA。 例: MOV [BX],CL 尋址過程示意必須使用BX、BP、SI、DI直接尋址過程示意圖DS(默認段)值0000ES值0000SS值0000CS值0000 Bit 19 4 3 0+) 0016H: 0000 0000 0001 011020 位 物 理 地 址……××××MemoryMOV AX,[0016H]AHAL寄存器間接尋址過程示意圖MOV [BX],CL ( 設BX原值為2010H)DS(BX、SI、DI默認段)0000ES0000SS(BP的默認段)0000CS0000 Bit 19 4 3 0 +)BX: 0010 0000 0001 000020 位 物 理 地 址……××Memory段寄存器使用規則直接尋址、使用BX、SI、DI的間接尋址使用BP的間接尋址堆棧操作源串指針目標串指針指令指針默認段寄存器DSSSSSDSESCS可加的段超越前綴ES:SS:CS:DS:ES:CS:—ES:SS:CS:——固定搭配的寄存器SPSIDIIP 。省略部分。BX] ;將EA=BX的內存單元 ;的字按位求反后送回 ;該內存單元4、“異或”運算指令XOR指令格式:XOR dst,src指令功能: (dst)⊕(src)→(dst) 對源操作數和目的操作數按位進行“異或”運算,影響標志位(AF無定義,CF=0,其他視具體情況)。如:XOR AX,AX ;AX清零5、測試指令TEST指令格式:TEST dst, src指令功能: (dst)∧(src) 對源操作數和目的操作數按位進行“與”運算,影響標志位(AF無定義,CF=0,其他視具體情況),但結果不改變源和目的操作數。此指令通常與條件轉移指令配合使用。如: TEST AL,80H ;測試D7=1? (ZF=1說明D7=0, ZF=0說明D7=1)五、移位指令1、邏輯/算術移位指令2、循環移位指令 移位操作類指令可以對字節或字中的各位進行算術移位、 邏輯移位或循環移位。 邏輯左移SHL( shift logical left )邏輯右移SHR( shift logical right)算術左移SAL( Shift arithmetic left )算術右移SAR( Shift arithmetic right ) 可以進行字節操作,也可以進行字操作。 1、邏輯/算術移位指令格式: SAL/SAR/SHL/SHR 操作數,1 ;移1位 SAL/SAR/SHL/SHR 操作數,CL ;移位(CL)次,移1位以上應現將次數放入CL。 移位之后改變操作數內容,但CL的值不變! 允許的操作數類型:通用寄存器、存儲器算術左移指令SALCF0 MSB LSBCF0 MSB LSBCF MSB LSBCF MSB LSB0邏輯右移指令SHR算術右移指令SAR邏輯左移指令SHL相同例:設(AL)=1011 0100B,(CF)=1在SAL AL,1之后,(AL)= 0110 1000B,(CF)=1在SAR AL,1之后,(AL)=1101 1010B,(CF)=0在SHL AL,1之后,(AL)=0110 1000B,(CF)=1在SHR AL,1之后,(AL)=0101 1010B,(CF)=0 移位指令對各標志位的影響如下: ① CF標志位要根據各種移位指令而定。OF標志位可表示移位后的符號位與移位前是否相同,即當位移為1,移位后的最高有效位的值發生變化時,OF置“1”,否則清“0”② 移位指令根據移位后的結果設置SF、ZF、PF標志位,AF標志位無定義。 在程序設計中,常常用左移位和右移位指令實現乘以2或除以2的操作。要進行帶符號數的乘以2或除以2的運算,可以通過算術左移和算術右移指令來實現。  例如,將(AL)的內容左移4位的指令如下: MOV AL, 02H ; (AL)=00000010B MOV CL,4 SAL AL,CL ; (AL)=00100000B,(CF)=0 通過 AL 的結果,看出(AL)由于左移4位,使(AL)×16, 即2×16=32 。 用移位指令實現乘、除法 SAL AX,1 ;實現(AX)×2 MOV BX,AX;(BX)=2 ×(AX) SAL AX,1 ;實現(AX)×4 ADD AX,BX ;實現(AX)×6 MOV BL,AL MOV CL,3 SHR AL,CL ;實現(AL)÷8 SUB BL ,AL ;實現(AL)×7/8循環左移ROL (Rotate left )循環右移ROR(Rotate right)帶進位循環左移RCL (Rotate right through carry )帶進位循環右移RCR (Rotate left through carry ) 與移位指令不同的是,從操作數一端移出來的位“循環地”進入該操作數的另一端。循環移位指令只影響CF和OF兩個標志,CF中只是存有最后一次循環移出的那一位值,OF的變化規則同移位操作。 2、循環移位指令不帶進位的 循環左移指令ROLCF MSB LSBCF MSB LSBCF MSB LSBCF MSB LSB不帶進位的循環右移指令ROR帶進位的循環左移指令RCL帶進位的循環右移指令RCRCFOPRD例:設(AL)=1011 0100B,(CF)=1執行下列語句:執行ROL AL,1 后,(AL)=0110 1001B,(CF)=1執行ROR AL,1后,(AL)=0101 1010B,(CF)=0執行RCL AL,1后,(AL)=0110 1001B,(CF)=1執行RCR AL,1后,(AL)=1101 1010B,(CF)=0格式: ROL/ROR/RCL/RCR 操作數,1;移1位 ROL/ROR/RCL/RCR 操作數,CL;移位(CL)次,移位2次及以上先把次數放入CL。(1)移位之后改變操作數內容,但CL的值不變。(2)允許的操作數類型:通用寄存器、存儲器(3)對標志位的影響: 移出位→CF 。 僅當移1位時影響OF ,左移循環移位后,操作數最高位與CF不等,則OF=1,否則OF=0;右移循環移位后操作數最高位與次高位不等則OF=1,否則OF=0。(4)移出的位不會丟失! 移位指令功能示意例題MOV AL,08H SHL AL,1 MOV BL,ALMOV CL,2SHL AL,CLADD AL,BL;08H→ AL;AL邏輯左移一位,AL=10H,;相當于AL×2;AL→BL;2→CL;AL算術左移兩位,AL=40H,;相當于AL×8;AL+BL→AL,;整個過程相當于08×101、以下指令序列,請問實現了什么功能?例題2、編制一個程序段,實現CX中的數除以4,結果仍舊放回CX中。解:假設CX內是無符號數,程序段如下: MOV AX,CX MOV CL,02H SHR AX,CL MOV CX,AX HLT第三章 作業1P793(5)5(7)6(4)9(3)10(1)13
關 鍵 詞:
第三 微機 原理
 天天文庫所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:微機原理 第三章1.ppt
鏈接地址: http://www.476824.live/p-51497115.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服點擊這里,給天天文庫發消息,QQ:1290478887 - 聯系我們

本站為“文檔C2C交易模式”,即用戶上傳的文檔直接賣給(下載)用戶,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有【成交的100%(原創)】。本站是網絡服務平臺方,若您的權利被侵害,侵權客服QQ:1290478887 歡迎舉報。

[email protected] 2017-2027 http://www.476824.live 網站版權所有

粵ICP備19057495號 

收起
展開
球探网即时蓝球比分 十一选五任选7每期必中法 股票内盘大于外盘是 河北快3跨度综合走势 河北快三app下载 2018十大网络配资平台 幸运飞艇愽彩平台出租 河北快三选号技巧 甘肃11选5中奖助手 体彩票11选5开奖结果新疆 专业福彩快乐8