當前位置首頁 > 計算機 > 計算機原理
搜柄,搜必應! 快速導航 | 使用教程

微型計算機原理與接口技術(4)

文檔格式:PPT| 40 頁|大小 377.50KB|積分 28|2024-11-07 發(fā)布|文檔ID:251366734
第1頁
第2頁
第3頁
下載文檔到電腦,查找使用更方便 還剩頁未讀,繼續(xù)閱讀>>
1 / 40
此文檔下載收益歸作者所有 下載文檔
  • 版權提示
  • 文本預覽
  • 常見問題
  • 單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,第四章 匯編語言程序設計,匯編語言是利用指令的助記符、符號地址、標號來編寫的語言,它是機器語言的符號表示,是較低級的語言利用匯編語言編寫的程序稱為源程序,指令系統(tǒng)中的每條指令都是構成源程序的基本語句但機器不能識別源程序,要通過匯編程序翻譯成二進制代碼的浮動目標程序,然后由連接程序將目標文件與庫文件相連,最后得到可執(zhí)行的程序,才可在機器上直接運行一個完整的匯編程序編寫格式要包括以下幾部分:段定義、段分配、設置段地址、返回DOS語句及程序結束,需要時加上過程調用1)匯編語言編寫的原程序是分段的,要定義代碼段、數(shù)據段、堆棧段,每段由段定義偽指令SEGMENT開始,ENDS結束,并賦予段名區(qū)分不同段段定義的基本格式如下:,段名 SEGMENT,段名 ENDS,原程序中至少有一個代碼段,此時數(shù)據可放在代碼段中;堆棧段如果不定義,由計算機自動分配段名可以自己定義,用字母和數(shù)字組成計算機識別不同的段由段分配偽指令ASSUME來完成段分配的格式為:,ASSUME CS:段名,DS:段名,SS:段名,ES:段名,(2)過程調用由偽指令PROCENDP實現(xiàn),過程的調用格式如下(也可省略):,過程名 PROC FAR(NEAR);FAR表示遠調用,NEAR表示近調用可缺省,過程名 ENDP,(3)若程序已經分別定義了數(shù)據段、堆棧段和附加段,主程序的開始要設置這些段的地址。

    代碼段的地址不能人為設置,由計算機分配堆棧段和數(shù)據段設置的具體語句為;,MOV AX,STACK ;送堆棧段地址,MOV SS,AX,MOV AX,DATA ;送數(shù)據段地址,MOV DS,AX,(4)程序執(zhí)行完畢要返回DOS操作系統(tǒng),有兩種方式實現(xiàn)一種是在程序的開始部分編寫如下語句:,PUSH DS,MOV AX,0,PUSH AX,將DS的內容及0作為段地址和偏移地址入棧,在程序結束時返回DOS以上三句語句必須寫在堆棧段設置后面,否則堆棧段的設置使一些指令不起作用了第二種方法是在程序結束前使用DOS功能調用指令,如下所示:,MOV AX,4C00H,INT 21H,(5)全部源程序用END語句結尾,END后面可以加上程序執(zhí)行起始的名稱START,匯編程序遇見END語句就結束4.1 匯編語言程序格式,8086系統(tǒng)中常用的匯編程序是MASM6.X版本,MASM中可使用的語句分成兩類:指令性語句和偽指令語句一、指令性語句,指令性語句與機器指令相對應,匯編程序可將它翻譯成目標代碼(機器指令代碼)語句格式為:,標號:指令助記符 操作數(shù),操作數(shù) ;注釋,標號表示本指令語句的符號地址,標號后面必須緊跟冒號“:”。

    指令助記符是該語句的指令名稱的代表符號,它指出指令的操作類型,匯編程序將其翻譯成機器指令它是語句中的關鍵字,因此不可省略操作數(shù)表示參加本指令運算的數(shù)據,根據指令要求可以有一個或多個操作數(shù),有的指令不需要操作數(shù),多個操作數(shù)之間用逗號“,”隔開,操作數(shù)與指令助記符之間用空格隔開操作數(shù)可以是常數(shù)、變量、標號、寄存器名或表達式二、偽指令語句,偽指令語句沒有對應的機器指令,匯編程序匯編源程序時對偽指令進行處理,它可完成數(shù)據定義,存儲區(qū)分配,段定義,段分配,指示程序結束等功能偽指令語句的格式為:,名字 偽指令指示符 操作數(shù),操作數(shù) ;注釋,名字是給偽指令取的名稱,它用符號地址表示,名字后不允許帶冒號“:”,名字可以省略偽指令中的名字通常是變量名、段名、過程名、符號名等偽指令指示符是匯編程序MASM規(guī)定的符號,常用的有變量定義語句(DB、DW),符號定義語句(EQU、),段定義語句(SEGMENT.ENDS),段分配語句(ASSUME),結構定義語句(STURC.ENDS),過程定義語句(PROR.ENDP)等類型,后面將詳細說明操作數(shù)是由偽指令具體要求的,有的偽指令不允許帶操作數(shù),有的偽指令要求帶多個操作數(shù),多個操作數(shù)之間必須用逗號分開。

    操作數(shù)可以是常數(shù)、變量、字符串、表達式等三、數(shù)據項,匯編語言中使用的操作數(shù),可以是常數(shù),寄存器、存儲器、變量、標號或表達式,其中常數(shù)、變量和標號是三種基本數(shù)據項1常數(shù),常數(shù)必須是固定值,沒有屬性,是確定的數(shù)據2變量,變量通常指存放在存儲單元中的值,在程序運行中是可以修改的所有的變量都具有三個屬性1)段值(SEGMENT)指變量所在段的段基址2)段內偏移地址(OFFSET):指變量地址與所在段首地址之間的地址偏移字節(jié)數(shù)3)類型(TYPE):變量的類型屬性指變量中每個元素所包含的字節(jié)數(shù),類型有:字節(jié)變量(BYTE)、宇變量(WORD)及雙字變量(DWORD)等3標號,標號是可執(zhí)行指令語句的地址的符號表示,它可作為轉移指令的目標操作數(shù),以確定程序轉向的目標地址,它具有三個屬性1)段值(SEGMENT):標號所在段的段基址2)段內偏移地址(OFFSET):標號地址與所在段的段首址之間的偏移地址字節(jié)數(shù)3)類型(TYPE):標號的類型屬性指在轉移指令中標號可轉移的距離,也稱距離屬性類型NEAR,表示此標號為近標號,只能實現(xiàn)本代碼段內轉移或調用,類型FAR,表示此標號為遠標號,可以作為其它代碼段中的目標地址,實現(xiàn)段間轉移或調用。

    若標號后面緊跟冒號,表示隱含此標號距離屬性為NEAR,也可用偽指令將此屬性改為FAR4.2 MASM中的表達式,一、算術運算符,加、減、乘、除、MOD、SHL、SHR運算對象與運算結果都是整數(shù)二、邏輯運算符,邏輯運算符包括AND(與)、OR(或)、NOT(非),XOR(異或)4種,邏輯運算符是按位運算的,只能對常數(shù)進行運算,得到結果也是常數(shù)三、關系運算符,關系運算符包括EQ(相等)、NE(不等)、LT(小于)、GT(大于)、LE(小于或等于)、GE(大于或等于)6種關系運算符的兩個操作數(shù)必須是數(shù)據,或是同一段內的兩個存儲單元的地址進行關系運算的比較操作后,結果是一個數(shù)值,若結果為真,輸出全是l,即,0FFH或0FFFFH若結果為假,輸出全是0關系運算符一般與邏輯運算符組合起來使用四、數(shù)值返回運算符,1OFFSET,格式:OFFSET變量或標號,OFFSET返回標號或變量的偏移地址值2SEG,格式:SEG變量或標號,SEG用來取變量或標號的段基值3TYPE,格式:TYPE 變量或標號,TYPE加在變量前,返回變量的類型屬性,TYPE加在標號前,返回標號的距離屬性4LENGTH,格式:LENGTH 變量,當變量中使用DUP時,LENGTH返回此變量所包含的單元數(shù),對其它變量則返回1。

    5.SIZE,格式:SIZE變量,SIZE運算符加在變量前,返回該變量包含的總字節(jié)數(shù)SIZELENGTHTYPE,五、修改屬性運算符,1.段操作符,格式:段前綴:變量或地址表達式,段前綴有段寄存器CS、DS、ES、SS后跟冒號“:”,用來表示某個變量或地址被修改到哪個段寄存器提供的段基址中2PTR,格式:類型/距離 PTR 變量或標號,其功能是將PTR左邊的類屬性賦給右邊的變量或標號PTR本身并不分配存儲單元,僅給已分配的存儲單元賦予新的屬性,以保證運算時操作數(shù)類型的匹配,常與類型BYTE、WORD、NEAR、FAR等連用3THIS,格式:變量/標號 EQU THIS 類型/距離,THIS的功能是將EQU THIS右邊的類型/距離屬性,賦給左邊的變量/標號,該變量或標號的段地址和偏移地址與下一個存儲單元的地址相同4SHORT,格式:SHORT標號,SHORT用來說明轉移類指令中轉向地址的屬性,指出轉向的目標地址與本指令之間的距離在128127之間,即限制在短轉移范圍內5HIGH和LOW,格式:H1GH/LOW變量或標號,HIGH和LOW稱為字節(jié)分離運算符,對一個數(shù)或地址表達式,HIGH從中分離出高位字節(jié),LOW分離出低位字節(jié)。

    六、其它運算符,1圓括號(),圓括號用來改變運算符的優(yōu)先級別,()中的運算符具有最高優(yōu)先權2方括號 ,方括號主要用來表示地址表達式或多重變量的下標值3尖括號,及圓點,運算符在結構中專用,表示結構中的變量在預置結構付本時是否修改,修改成什么數(shù)值運算符在結構中專用,表示結構付本名與變量名連接在一起,作為預置的結構付本中的各個變量4MASK和WIDTH,MASK與WIDTH運算符在記錄中專用WIDTH為記錄名/字段名,運算后返回數(shù)值表示指定記錄或字段的位的長度MASK為字段名,返回數(shù)值為8位/16位二進制數(shù),對應指定字段的各位置“1”,其它位置“0”七、優(yōu)先級,4.3 偽指令語句,一、數(shù)據定義語句,格式1:變量名 助記符 操作數(shù),操作數(shù) ;注釋,格式2:變量名 助記符 n DUP(操作數(shù),操作數(shù));注釋,功能:將操作數(shù)存入變量名指定的存儲單元中,或者只分配存儲空間不存入數(shù)據變量名它用符號表示,可以省略,作用與指令語句中的標號相同,但后面不跟冒號匯編程序匯編時將此變量的助記符后的第一個字節(jié)的偏移地址作為它的符號地址助記符所用偽指令助記符主要有:,DB:用來定義字節(jié),表示每個操作數(shù)占用一個字節(jié)DW;用來定義字,表示每個操作數(shù)占用一個字。

    DD:用來定義雙字,表示每個操作數(shù)占用兩個字DQ:用來定義四個字,表示每個操作數(shù)占用四個字DT:用來定義十個字節(jié),表示每個操作數(shù)占用十個字節(jié)二、表達式賦值語句,表達式賦值語句有兩種,賦值語句EQU和等號語句,它們均不占用內存1賦值語句EQU,格式:符號名 EQU 表達式,功能:用來給變量,標號,常數(shù),指令,表達式等定義一個符號名,程序中用到EQU左邊的變量、標號時可用右邊的常數(shù)值或表達式代替,但一經定義在同一個程序模塊中不能重新定義2等號語句,等號語句“”與EQU語句具有相同功能,區(qū)別僅在于EQU中左邊的標號不允許重新定義,而用“”定義的語句允許重復定義三、段定義語句,1.段定義語句SEGMENTENDS,格式:段名 SEGMENT 定位類型 組合類型 分類名,邏輯段內容,段名 ENDS,功能:將一個邏輯段定義成一個整體段定義語句中的參數(shù)設置,可以增強偽指令語句的功能段定義語句允許嵌套設置,即一個邏輯段內再設置其它邏輯段,但不允許各個邏輯段相互交叉設置2.段分配語句(ASSUME),在8086/8088系統(tǒng)中存儲器采用分段結構,各段容量64KB,用戶可以設置多個邏輯段,但只允許4個邏輯段同時有效,段分配語句用來完成將邏輯段分別定義成代碼段,數(shù)據段,堆棧段及附加段。

    格式:ASSUME CS:段名,DS:段名,SS:段名,ES:段名,功能:定義4個邏輯段,指明段與段寄存器的關系ASSUME NOTHING 可以取消前面由ASSUME所指定的段寄存器例:兩個16位無符號二進制數(shù)相乘DATA SEGMENT,D1 DW 1234H,D2 DW 5678H,P1 DD?,P2 DD?,DATA ENDS,STACK SEGMENT STACK STACK,DW 100 DUP(?),STACK ENDS,CODE SEGMENT,ASSUME CS:CODE,DS:DATA,SS:STACK,MAIN PROC FAR,START:MOV AX,STACK,MOV SS,AX,PUSH DS,SUB AX,AX,PUSH AX,MOV AX,DATA,MOV DS,AX,L1:MOV AX,D1,MUL D2,MOV BX,OFFSET P1,MOV BX,AX,MOV BX+2,DX,RET,MAIN ENDP,CODE ENDS,END START,四、過程定義語句,過程也稱作子程序在主程序中,經常要用到一些程序段,程序段的功能和結構相同,僅有一些變量賦值不同,此時可以將這些程序段獨立編寫,用過程定義語句進行定義,然后在主程序中對它進行過程調用。

    點擊閱讀更多內容
    最新文檔
    傳統(tǒng)文化道德不是高懸的明月而是腳下的星光.pptx
    世界無煙日關注青少年成長健康無煙為成長護航.pptx
    五四青年節(jié)詩詞贊歌五四青年自強不息.pptx
    XX學校班主任培訓用心管理慧做班主任.pptx
    拒絕熬夜健康養(yǎng)生規(guī)律作息遠離亞健康.pptx
    兒童成長手冊時光里的童真印記.pptx
    幼兒園夏季傳染病預防指南預見夏天健康童行夏季傳染病預防科普.pptx
    高中生心理健康教育主題班會快樂學習高效學習正視壓力學會減壓.pptx
    員工職業(yè)道德與職業(yè)素養(yǎng)培訓遵守職業(yè)道德提高職業(yè)修養(yǎng).pptx
    2025職業(yè)病防治法宣傳周健康守護職防同行.pptx
    XX幼兒園防災減災安全教育臨災不亂安全童行學會保護自己.pptx
    在2025年縣教育工作大會暨高考備考工作推進會上的講話發(fā)言材料.docx
    在2025年縣全面從嚴治黨和黨風廉政會議上的講話發(fā)言材料.docx
    在2025年全市慶?!拔逡弧濒邉趧幽7侗碚么髸系闹v話發(fā)言材料多篇.docx
    2025年稅務局青年代表在五四青年座談會上的發(fā)言材料3篇.docx
    在2025年市委全體會議上的主持講話發(fā)言材料.docx
    2025年黨風廉政建設工作要點材料.docx
    在2025年全市青年干部慶祝五四青年節(jié)大會上的講話發(fā)言材料多篇.docx
    在入黨積極分子培訓班上的講話發(fā)言材料.docx
    縣文旅局黨組書記在五一假期及夏季旅游安全生產工作部署會議上的講話發(fā)言材料.docx
    賣家[上傳人]:奇緣之旅
    資質:實名認證