• 匯編語言第三章.ppt

    1. 1、本文檔共117頁,可閱讀全部內容。
    2. 2、本文檔付費后,不意味著付費購買了版權,只能用于單位或個人使用,不得用于商業用途(如:【轉賣】進行直接盈利和【編輯后售賣】進行間接盈利)。
    3. 3、本站所有內容均由合作方或網友上傳,本站不對文檔的完整性、權威性及其觀點立場正確性做任何保證或承諾!文檔內容僅供研究參考,付費前請自行鑒別。如您付費,意味著您自己接受本站規則且自行承擔風險,本站不退款、不進行額外附加服務;查看《如何避免下載的幾個坑》。如果您已付費下載過本站文檔,您可以點擊 這里二次下載
    4. 4、如文檔侵犯商業秘密、侵犯著作權、侵犯人身權等,請點擊“版權申訴”(推薦),也可以打舉報電話:18428362892(電話支持時間:9:00-19:00)。
    定位偽指令 定位偽指令控制數據的偏移地址 ORG 參數 ORG偽指令是將當前偏移地址指針指向參數表達的偏移地址: ORG 100h ;從100h處安排數據或程序 ORG $+10 ;使偏移地址加10,即跳過10個字節空間 MASM中,符號“$”表示當前偏移地址值 EVEN ;從偶地址開始 ALIGN n ;從n的整數倍地址開始 第62頁,共117頁,編輯于2022年,星期四 3.2.3 變量和標號的屬性 標號和名字一經定義便具有以下兩類三種屬性: ① 段值 標號和名字對應存儲單元的段地址 ② 偏移值 標號和名字對應存儲單元的偏移地址 ③ 類型 標號、子程序名的類型可以是NEAR(近)和FAR(遠),分別表示段內或段間 變量名的類型可以是BYTE(字節)、WORD(字)和DWORD(雙字)等 地址屬性 類型屬性 第63頁,共117頁,編輯于2022年,星期四 地址操作符 取得名字或標號的段地址和偏移地址兩個屬性 [ ] 將括起的表達式作為存儲器地址 $ 當前偏移地址 : 采用指定的段地址寄存器 OFFSET 名字/標號 返回名字或標號的偏移地址 SEG 名字/標號 返回名字或標號的段地址 實例 第64頁,共117頁,編輯于2022年,星期四 org $+10 array db 45,45h .code mov ax,seg array mov ds,ax mov bx,offset array ;等價于 lea bx,array mov cl,array+4 ;等效于 mov cl,array[4] mov ax,es:[2000h] 地址操作符實例 加4個字節單元 第65頁,共117頁,編輯于2022年,星期四 類型操作符 類型操作符對名字或標號的類型屬性進行有關設置 類型名 PTR 名字/標號 THIS 類型名 SHORT 標號 TYPE 名字/標號 SIZEOF 變量名 LENGTHOF 變量名 第66頁,共117頁,編輯于2022年,星期四 PTR操作符 類型名 PTR 名字/標號 PTR操作符使名字或標號具有指定的類型 類型名可以是 BYTE/WORD/DWORD/FWORD/QWORD/TBYTE 或者是NEAR/FAR,還可以是由STRUCT、RECORD、UNION以及TYPEDEF定義的類型 mov al,byte ptr w_var ;w_var是一個字變量 jmp far ptr n_label ;n_label是一個標號 使用PTR操作符,可以臨時改變名字或標號的類型 第67頁,共117頁,編輯于2022年,星期四 THIS操作符 THIS 類型名 利用THIS說明的操作數具有匯編時的當前邏輯地址,但具有指定的類型 b_var equ THIS byte ;按字節訪問變量b_var,但與w_var的地址相同 w_var dw 10 dup(0) ;按字訪問變量w_var f_jump equ THIS far ;用f_jump為段間轉移(f_jump label far) n_jump: mov ax,w_var ;用n_jump為段內近轉移,但兩者指向同一條指令 LABEL偽指令的功能等同于“EQU THIS” 第68頁,共117頁,編輯于2022年,星期四 SHORT操作符 SHORT 標名 指定標號作為-128~+127字節范圍內的短轉移 jmp short n_jump 當然,如果標號實際上超出了這個范圍,則出錯。 對高版本MASM已無意義 第69頁,共117頁,編輯于2022年,星期四 TYPE操作符 TYPE 名字/標名 返回表明名字或標號類型的一個字量數值 對字節、字和雙字變量依次返回1、2和4; 對短、近和遠轉移依次返回ff01h、ff02h和ff05h mov ax,TYPE w_var ;匯編結果為mov ax,2 mov ax,TYPE n_jump ;匯編結果為 mov ax,0ff02h(near標號) 操作符SIZEOF返回整個變量占用的字節數 LENGTHOF返回整個變量的數據項數(即元素數) SIZEOF = LENGTHOF × TYPE 第70頁,共117頁,編輯于2022年,星期四 .model small .stack .data v_byte equ this byte ;v_byte是字節類型,與變量v_word的地址相同 v_word dw 3332h,3735h ;v_word是字類型的變量 target dw 5 dup(20h) ;分配數據空間2×5=10字節 crlf db 0dh,0ah,'$' flag db 0 n_point dw offset s_label ;取得標號s_label

    您可能關注的文檔

    文檔評論(0)

    xiaolan118

    相關文檔

    相關課程推薦

    亚洲欧美日韩高清专区高清