freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[高等教育]c第4章匯編語言程序設計(已修改)

2025-01-31 18:26 本頁面
 

【正文】 1 第四章 匯編語言程序設計 匯編語言格式 8086匯編語言常用偽指令 DOS系統(tǒng)功能調(diào)用和 BIOS中斷調(diào)用 程序設計方法 2 ? 匯編語言是一種用符號表示的 、面向 CPU指令系統(tǒng) 的程序設計語言。匯編語言具有以下 兩個基本特點: ? 程序設計人員能更充分地利用機器硬件的 全部 功能,發(fā)揮機器的長處; ? 程序目標代碼占用內(nèi)存少,執(zhí)行 速度快 , 效率高 ,具有 實時性 ; 匯編語言程序概述 3 匯編語言與高級語言 ? 由于匯編的特點, 匯編語言 常用于編寫計算機 系統(tǒng)程序 、 實時 通信程序和 實時 控制程序。但匯編語言程序依賴于機器硬件,其 通用性和移植性都較差 。 ? 相對于匯編語言, 高級語言 的 編程方便快捷,通用性和移植性都較好 ,在一些涉及大量數(shù)據(jù)處理、人機界面等設計任務的應用程序中,采用高級語言編程更為合適。 4 匯編語言源程序 機器語言程序 (目標代碼) 匯編(可由匯編程序完成) 高級語言源程序 編譯或解釋 (可由編譯程序完成) 從源程序獲得目標程序的過程 ? 為了能順利完成匯編,用戶必須為匯編程序提供一些額外的、與硬件有關的信息,如:程序使用的變量應分別存放在內(nèi)存的哪個單元、堆棧應從內(nèi)存的什么地址開始等等。 5 示例:串傳送 DATA SEGMENT 。定義數(shù)據(jù)段 SRC_MESS DB ?HELLO!? DATA ENDS 。數(shù)據(jù)段定義結(jié)束 EXTRA SEGMENT 。定義附加段 NEW_LOC DB 6 DUP(?) EXTRA ENDS 。附加定義結(jié)束 CODE SEGMENT 。定義代碼段 ASSUME CS:CODE , DS:DATA ,ES:EXTRA 。對各段進行說明 START: MOV AX,DATA MOV DS , AX 。 DS初始化為 DATA MOV AX,EXTRA MOV ES , AX LEA SI, SRC_MESS LEA DI, NEW_LOC MOV CX, 6 CLD REP MOVSB CODE ENDS 。代碼段定義結(jié)束 END START 定義存儲單元的數(shù)據(jù) 匯編程序結(jié)束 6 段 。 ―――――――――――――――― ――――――――――――― 段名 1 SEGMENT 。 一個段的開始 語句 1 語句 2 …… 段名 1 ENDS 。 一個段的結(jié)束 。 ―――――――――――――――――――――――――――― - 段名 2 SEGMENT 。 另一個段的開始 …… 段名 2 ENDS 。 另一個段的結(jié)束 。 ――――――――――――――――――――――――――――― …… 。 其它段 。 ――――――――――――――――――――――――――――― END 。 源代碼結(jié)束 7 ? 由 ? 指令 ? 和 ? 偽指令 ? 共同構成的。 ? ? 指令 ? 由 8086CPU規(guī)定的; ? ? 偽指令 ? 說明與硬件有關的信息; ? ? 段 ? 結(jié)構 ? 因為 8086系統(tǒng)的存儲器采用分段管理 匯編語言程序格式 指令性語句和偽指令語句 8 語 句 ? 語句是由各種符號 ( 標記 ) 及分隔符按照一定的規(guī)則組織起來的一個有序序列 。 標識符 操作符 操作數(shù) 注釋 ? 有 2種基本語句 : 指令性 語句 ( 指令 ) 、 指示性 語句 ( 偽指令 ) 。 ? 指令性語句 :即執(zhí)行性語句 (指令 ),與機器碼一一對應,表示某種確定操作,包括四部分: [ 標號: ] 指令助記符 [ 操作數(shù) ] [, 操作數(shù) ] [。注釋 ] 例: AGAN: ADC SUM, AX 。累加 ? 指示性語句 :即說明性語句 (偽指令 ),不對應機器碼,只為匯編提供所需信息,由四部分組成: [ 名字 ] 偽指令指示符 [ 操作數(shù) ] [, 操作數(shù) ] [。注釋 ] 例: SUM DW ? 。為結(jié)果保留一個字 9 標識符字段 ? 標識符字段由各種有效字符(字母,數(shù)字,特殊符號 @、?、 —)組成,一般表示符號地址。 ? 很多情況下標識符字段是語句中的 可選部分 ,主要為便于程序的讀寫方便而使用。 ? 通常有 : ? 標號 ? 名字 10 常量 — 必須是固定值,沒有屬性,是確定數(shù)據(jù) ? 數(shù)字常量 ? 二進制數(shù):以 ? B”結(jié)尾,如 00001101B; ? 八進制數(shù):以 ? O”結(jié)尾,如 725O; ? 十六進制數(shù):以 ? H”結(jié)尾,并且必須以數(shù)字打頭,即若最高位為字母 A~ F,前面應加 0,如 0A12H; ? 十進制數(shù):以 ? D”結(jié)尾或無任何字母作結(jié)尾,如 10D、10。 ? 字符串常量 ? 字符串常量表示為包含在兩個 單引號 之間的一連串ASCII字符。當單引號本身作為一個串元素時,需連寫兩個單引號。每個串元素的值定義為該元素所對應的 1字節(jié) ASCII碼值 。 數(shù)據(jù)項 11 變量 — 通常指存放在存儲單元的值,在程序運行中可以修改。 ? 有三個屬性 ? 段值 ( SEGMENT):變量所在段的段基址; ? 段內(nèi)偏移地址 ( OFFSET) ? 類型 ( TYPE):變量中每個元素所包含的字節(jié)數(shù),類型有:字節(jié)變量( BYTE)、字變量( WORD)、雙字變量( DWORD)等。 12 標號 — 可執(zhí)行指令語句的地址的符號表示,它 可作為轉(zhuǎn)移指令的目的操作數(shù),以確定程序轉(zhuǎn)向的目的地址。 ? 有三個屬性 ? 段值 ( SEGMENT):標號所在段的段基址; ? 段內(nèi)偏移地址 ( OFFSET):標號地址與所在段的段首址之間的偏移地址字節(jié)數(shù) ? 類型 ( TYPE):在轉(zhuǎn)移指令中標號可轉(zhuǎn)移的距離。如NEAR、 FAR。 13 注釋字段 ? 注釋字段:用于說明、解釋程序使之便于閱讀或檢查的任何文字或字符,位于語句行的末尾,用 分號( 。 )引導。 ? 注釋 對匯編不起任何作用 ,不對應于任何機器碼,僅增強源程序的可讀性。 14 ? 由若干運算對象和運算符組成的有意義的組合序列。 ? 表達式可出現(xiàn)于源程序的任何地方 ? 在 匯編過程中 ( 而不是程序執(zhí)行過程中 )即可產(chǎn)生確定的值。 ? 表達式中的運算對象 ? 常量運算對象: 直接寫出的數(shù)或用常量名表示的數(shù)。 ? 存儲器運算對象 :可以為變量名或標號。 MASM中的表達式 15 表達式中的運算符 ? 包括 算術運算符 、 邏輯運算符 、 關系運算符 、 數(shù)值返回運算符、修改屬性運算符 以及其它運算符六種。 ? 有優(yōu)先級的區(qū)別。 (ref: 表 ,) 16 ? 算術運算符: +、 、 *、 /、 MOD、 SHL、 SHR ? 邏輯運算符: AND、 OR、 XOR、 NOT ? 關系運算符: EQ、 NE、 LT、 LE、 GT、 GE ? 數(shù)值返回: OFFSET、 SEG、 TYPE、 LENGTH 、 SIZE ? 修改屬性: DS:、 PTR、 THIS、 HIGH、 LOW、 SHORT ? 其它: [ ] ( ) . MASK WIDTH 17 數(shù)值返回運算符 ? 對單個操作數(shù)進行屬性分將返回不同屬性的值 ? SEG 變量或標號所在段的段寄存器值 作為段基址,結(jié)果為 16位值 ? OFFSET 取變量或標號的段內(nèi)偏移量,結(jié)果 為 16位值 ? TYPE 取變量或標號的類型 ? LENGTH 取 DUP重復次數(shù)
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1