• 匯編語言程序格式.ppt

    1. 1、本文檔共43頁,可閱讀全部內容。
    2. 2、本文檔付費后,不意味著付費購買了版權,只能用于單位或個人使用,不得用于商業用途(如:【轉賣】進行直接盈利和【編輯后售賣】進行間接盈利)。
    3. 3、本站所有內容均由合作方或網友上傳,本站不對文檔的完整性、權威性及其觀點立場正確性做任何保證或承諾!文檔內容僅供研究參考,付費前請自行鑒別。如您付費,意味著您自己接受本站規則且自行承擔風險,本站不退款、不進行額外附加服務;查看《如何避免下載的幾個坑》。如果您已付費下載過本站文檔,您可以點擊 這里二次下載
    4. 4、如文檔侵犯商業秘密、侵犯著作權、侵犯人身權等,請點擊“版權申訴”(推薦),也可以打舉報電話:18428362892(電話支持時間:9:00-19:00)。
    舉例 DATA SEGMENT A DB ‘1234’ B DW A C DD A D DW 123H, 0F5H DATA ENDS ……… MOV AX, SEG A ;DATA→AX MOV DS, AX MOV AL, LENGTH A ;1 →AL MOV AH, SIZE A ;1 →AH MOV BH, TYPE C ;4 →BH MOV BP, OFFSET C ;6 →BP 第30頁,共43頁,編輯于2022年,星期四 變量可以通過它的名字訪問,要特別注意操作類型與定義時的類型一致。 DATA SEGMENT A DB 52 B DW ‘AB’ DATA ENDS CODE SEGMENT ASSUME DS:DATA, CS:CODE START: MOV AX, DATA MOV DS, AX MOV AH, A MOV BX, B MOV CX, A ;出錯 MOV CL, B ;出錯 …… 為了提高訪問變量的靈活性,可以使用屬性操作符,修改變量類型 第31頁,共43頁,編輯于2022年,星期四 匯編語言程序格式 第1頁,共43頁,編輯于2022年,星期四 4.1 源程序書寫格式 完整的段定義 一般格式如下: <段名> SEGMENT …… <段名> ENDS 簡化段定義 .MODEL, .STACK, .DATA, .CODE 一般格式書寫結構: <堆棧段名> SEGMENT STACK …… <堆棧段名> ENDS <數據段名> SEGMENT …… <數據段名> ENDS <代碼段名> SEGMENT ASSUME定義 過程名或起始標號: …… <代碼段名> ENDS END 過程名或起始標號 第2頁,共43頁,編輯于2022年,星期四 幾點說明 源程序中的堆棧段、數據段和代碼段是邏輯段。源程序在匯編、連接后生成的段是物理段。邏輯段和物理段的關系取決于偽指令ASSUME。 一個源程序至少有一個邏輯代碼段和END偽指令。 一個源程序文件可以含有多個邏輯數據段、多個邏輯代碼段、多個邏輯堆棧段。 第3頁,共43頁,編輯于2022年,星期四 ;完整段定義 data segment HMessage DB 'Hello, World',13,10,'$' data ends code segment Assume cs:code,ds:data Start:mov ax,data mov ds,ax mov ah,9 mov dx,OFFSET HMessage int 21h mov ah,4ch int 21h code ends END Start 書寫格式舉例 第4頁,共43頁,編輯于2022年,星期四 ;簡化段定義1 .Model Small .DATA HMessage DB 'Hello, World!',13,10,'$' .CODE Start:mov ax,@data mov ds,ax mov ah,9 mov dx,OFFSET HMessage int 21h mov ah,4ch int 21h END Start 書寫格式舉例 第5頁,共43頁,編輯于2022年,星期四 ;簡化段定義2 .Model Small .DATA HMessage DB 'Hello, World',13,10,'$' .CODE Start: .STARTUP mov ah,9 mov dx,OFFSET HMessage int 21h .EXIT 0 END Start 書寫格式舉例 第6頁,共43頁,編輯于2022年,星期四 書寫格式中涉及的偽指令 SEGMENT / ENDS 相當于一個邏輯段的前后括號,必須成對出現。 <段名>由用戶給出,前后必須一致。 END 格式:END [過程名|標號] 功能:源程序文件結束。 ASSUME 格式:ASSUME 段寄存器名:邏輯段名 功能:用于指定某邏輯段應通過哪個段寄存器尋址,但并不把具體值裝入相應的段寄存器。 第7頁,共43頁,編輯于2022年,星期四 段寄存器的裝填 CS的裝填 系統完成,無需用戶干預。 DS,ES,SS(對于386后繼機型,FS,GS) 裝填有用戶程序完成。 以DS為例,一般方法: MOV AX,<邏輯段名> MOV DS,AX 程序開始偽指令:.STARTUP(只能在簡化段

    您可能關注的文檔

    文檔評論(0)

    努力奮斗的小玲

    相關文檔

    相關課程推薦

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