微機原理及接口技術4-3匯編語言中的偽指令_第1頁
微機原理及接口技術4-3匯編語言中的偽指令_第2頁
微機原理及接口技術4-3匯編語言中的偽指令_第3頁
微機原理及接口技術4-3匯編語言中的偽指令_第4頁
微機原理及接口技術4-3匯編語言中的偽指令_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 例例:已知定義變量已知定義變量 ARR1 DB 00H,11H,22H,33HARR2 DW 3456H,1024,2525,1000/3,10A0HARR100H11H22H33HARR256H34H00H04H71H02H4DH01HA0H10H0123456789ABCDEARR1的偏移地址是的偏移地址是 0ARR2的偏移地址是的偏移地址是 4MOV AX , ARR2 ; (AX) = ?MOV AX , OFFSET ARR2 ; (AX) = ?MOV AL , BYTE PTR ARR2 + 5 ; (AL) = ? MOV AX ,WORD PTR ARR1 ; (AX) =

2、 ?1、段定義語句、段定義語句格式:格式: 段名段名 SEGMENT 段名段名 ENDS 2、段寄存器指派語句、段寄存器指派語句 格式:格式: ASSUME 段寄存器:段名段寄存器:段名 ,段寄,段寄存器:段名存器:段名.n功能:指明段與段寄存器之間關系功能:指明段與段寄存器之間關系 ASSUME語句僅僅約定了對邏輯段進行尋址操作時使用語句僅僅約定了對邏輯段進行尋址操作時使用哪個段寄存器,而段寄存器的初值還必須在程序中用指令設置。哪個段寄存器,而段寄存器的初值還必須在程序中用指令設置。 對對CS的賦值是由操作系統(tǒng)系統(tǒng)自動完成的,程序員不用的賦值是由操作系統(tǒng)系統(tǒng)自動完成的,程序員不用設置。設置。

3、格式:格式: 過程名過程名 PROC 類型類型 RET 過程名過程名 ENDP說明:說明:q(1)PROC表示過程的開始,表示過程的開始,ENDP表示過程的結束。表示過程的結束。q(2)在過程中要有一個)在過程中要有一個RET指令使其返回指令使其返回主程序。主程序。q(3)每個過程要有一個過程名,通過該名其他程序可)每個過程要有一個過程名,通過該名其他程序可以調用該過程。以調用該過程。q(4)過程中有類型說明)過程中有類型說明FAR或或NEAR說明說明該過程是該過程是遠過程還是近過程。遠過程還是近過程。 SOFDLY PROC PUSH BX PUSH CX MOV BL , 10 DELAY

4、: MOV CX , 2801 WAIT: LOOP WAIT DEC BL JNZ DELAY POP CX POP BX RET SOFDLY ENDP .DATA SEGMENT S DW ?,?,?DATA ENDSCODE SEGMENT ASSUME CS: CODE,DS: DATA START : MOV AX ,DATA MOV DS ,AX MOV AL ,30H ADD AL ,20H MOV BL ,80H MUL BL MOV BX , 185H SUB DX , DX DIV BX MOV S , AX MOV S + 2 , DX CODE ENDS END ST

5、ART編制匯編語言程序的步驟:編制匯編語言程序的步驟:明確任務,確定算法;明確任務,確定算法;繪制流程圖;繪制流程圖;根據(jù)流程圖編寫匯編程序語言;根據(jù)流程圖編寫匯編程序語言;1.上機調試。上機調試。程序的基本結構有四種:程序的基本結構有四種:順序結構順序結構分支結構分支結構循環(huán)結構循環(huán)結構子程序結構子程序結構 例例1 編程計算編程計算 S = DATA SEGMENT S DW ?,?,? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START : MOV AX ,DATA MOV DS ,AX MOV AL ,30H ADD AL ,20H M

6、OV BL ,80H MUL BL ;結果在;結果在AX中。中。80H(30H+20H)185H加法加法ADD乘法乘法擴展擴展除法除法存結果存結果結束結束 MOV BX , 185H SUB DX , DX ; 擴展被除數(shù)為雙字擴展被除數(shù)為雙字/字字 DIV BX MOV S , AX ; 存商存商 MOV S + 2 , DX ;存余數(shù);存余數(shù) CODE ENDS END START 在編寫順序程序時,要考慮以下內容:在編寫順序程序時,要考慮以下內容: 1、如何組織初始、中間、結果數(shù)據(jù)。采用的尋址方式,使用、如何組織初始、中間、結果數(shù)據(jù)。采用的尋址方式,使用的寄存器。的寄存器。 2、計算的順

7、序,用變量、寄存器、還是堆棧保存中間結果,、計算的順序,用變量、寄存器、還是堆棧保存中間結果,有時需預留、預清除、預設置一些寄存器。有時需預留、預清除、預設置一些寄存器。 3、指令與指令之間的銜接。、指令與指令之間的銜接。條件條件S1S2YN分支程序結構也稱為條件結構,通常有兩種形式,分支程序結構也稱為條件結構,通常有兩種形式,一種是兩分支結構(一種是兩分支結構(IF_THEN_ELSE),一種是多一種是多分支結構(分支結構(CASE結構即選擇結構)。結構即選擇結構)。條件條件S1S2Sn雙分支程序雙分支程序例例1:已知在內存中,有一個字節(jié)單元:已知在內存中,有一個字節(jié)單元X存有帶符號存有帶符

8、號數(shù)據(jù),計算出它的絕對值后并放入數(shù)據(jù),計算出它的絕對值后并放入RESULT單元中。單元中。多分支程序多分支程序例例2:編程計算下列函數(shù)的值:編程計算下列函數(shù)的值: Y=1 (X0)0 (X=0)-1 (X0) 當要進行多次重復操作時采用循環(huán)設計。常見的循環(huán)程序結構有當要進行多次重復操作時采用循環(huán)設計。常見的循環(huán)程序結構有兩種:兩種:WHILLE_DO結構和結構和DO_UNTIL結構,結構框圖如下:結構,結構框圖如下:循環(huán)初始狀態(tài)循環(huán)初始狀態(tài)循環(huán)體循環(huán)體循環(huán)控循環(huán)控制條件制條件YN循環(huán)初始狀態(tài)循環(huán)初始狀態(tài)循環(huán)體循環(huán)體循環(huán)控循環(huán)控制條件制條件YNWHILLE_DO結構DO_UNTIL結構循環(huán)程序設

9、計分為三部分循環(huán)程序設計分為三部分:1、設置初始部分:設置初始部分:設置循環(huán)次數(shù),設置循環(huán)次數(shù),地址指針或其它初始狀態(tài)。地址指針或其它初始狀態(tài)。2、循環(huán)體:循環(huán)體:包括工作部分和修改包括工作部分和修改部分。部分。3、循環(huán)控制部分:循環(huán)控制部分:控制循環(huán)次數(shù)控制循環(huán)次數(shù)。 開始初始化循環(huán)體修改部分控制結束YN 事先已知循環(huán)次數(shù),每次循環(huán)加或減事先已知循環(huán)次數(shù),每次循環(huán)加或減計數(shù),并判定總次數(shù)以達到控制循環(huán)。計數(shù),并判定總次數(shù)以達到控制循環(huán)。事先不知循環(huán)次數(shù),在循環(huán)時判定某事先不知循環(huán)次數(shù),在循環(huán)時判定某種條件的真假達到控制循環(huán)。種條件的真假達到控制循環(huán)。事先設定二進制位的狀態(tài),或由外界事先設定二

10、進制位的狀態(tài),或由外界干預,測試開關狀態(tài),決定循環(huán)。干預,測試開關狀態(tài),決定循環(huán)。DATA SEGMENT AB DW 0123H,2A00H,52EFH 0700H,7255H SUM DW ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX ,DATA MOV DS ,AX MOV CX ,05 MOV AX ,0 LEA SI ,AB 01000H01002H01004H01006H01008H23H01H00H2AHEFH52H00H07H55H72H開始開始初始初始 SI、CXCX = 0?相加相加修改修改 SI結束結

11、束和存和存 SUMNY控制計數(shù)循環(huán)控制計數(shù)循環(huán)例:累加從地址例:累加從地址 ABAB開始的開始的 5 5 個字的內容,并將和個字的內容,并將和存入存入SUMSUM單元(一個字長)。單元(一個字長)。 INC SI ;修改指針;修改指針 若用若用ADD SI ,2 INC SI 則則 PUSHF LOOP REG ;CX - 1,CX 0循環(huán)。循環(huán)。 ADD SI ,2 MOV SUM ,AX POPF 因為因為ADD影響影響 CF CODE ENDS END START 此題,累加和的結果是一個字,若和超出一個字,應開始此題,累加和的結果是一個字,若和超出一個字,應開始 SUM DW ?,?,

12、? MOV DX ,0 在在REG:ADD AX ,SI ADC DX ,0 INC SI INC SI LOOP REG MOV SUM ,AX MOV SUM+2,DX例:編程序統(tǒng)計例:編程序統(tǒng)計 AX 寄存器中寄存器中 1 的個數(shù)。的個數(shù)。CODE SEGMENT ASSUME CS:CODESTART: MOV CX , 0 ;存存 1 的個數(shù)的個數(shù)AGAIN: TEST AX , 0FFFFH JZ B SAL AX , 1 JNC A INC CX A: JMP AGAIN B: HLT CODE ENDS END START初始初始 CX = 0AX = 0 ?逐位移到最高位逐位移到最高位CF = 1 ?CX結束結束繼續(xù)繼續(xù)YNYN BEGIN :IN AL ,52H ;從狀態(tài)口讀;從狀態(tài)口讀 TEST AL

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論