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

正文內(nèi)容

微機(jī)4-12上第2章已學(xué)匯編(已修改)

2025-05-11 05:55 本頁面
 

【正文】 第 2章 指令系統(tǒng)及匯編語言程序設(shè)計 8088/8086的尋址方式 8088/8086的指令系統(tǒng) 匯編語言 匯編語言源程序格式 偽指令 匯編語言源程序結(jié)構(gòu) 基本程序設(shè)計方法 DOS功能調(diào)用 順序程序設(shè)計 分支程序設(shè)計 循環(huán)程序設(shè)計 子程序設(shè)計 本次課內(nèi)容 請 大 家 復(fù) 習(xí) 《 匯編語言 》 掌 握 本 節(jié) 內(nèi) 容 第二章復(fù)習(xí)小結(jié) 下次課 匯編語言單元考試及講第 3章 匯編語言 匯編語言的特點 匯編語言是一種以處理器指令系統(tǒng)為基礎(chǔ)的低級程序設(shè)計語言 , 它采用助記符表達(dá)指令操作碼 利用匯編語言編寫程序的主要優(yōu)點是可以直接 、 有效地控制計算機(jī)硬件 , 因而容易創(chuàng)建代碼序列短小 、 運行快速的可執(zhí)行程序 在有些應(yīng)用領(lǐng)域 , 匯編語言的作用是不容置疑和無可替代的 匯編程序設(shè)計的過程是與其他高級語言程序設(shè)計大致相同 什么是匯編語言 以助記符形式表示計算機(jī)指令 助記符 ( mnemonic) 是便于人們記憶 、 并能描述指令功能和指令操作數(shù)的符號 助記符是表明指令功能的英語單詞或其縮寫 匯編格式指令以及使用它們編寫程序的規(guī)則就形成匯編語言 ( Assembly Language) 匯編語言程序 :用匯編語言書寫的程序 匯編程序 :將匯編語言程序 “ 匯編 ” 成機(jī)器代碼目標(biāo)模塊的程序 匯編語言程序與匯編程序是兩個概念 硬指令和偽指令 匯編程序 將匯編語言 源程序 翻譯成在機(jī)器上能執(zhí)行的機(jī)器語言程序 ( 目的代碼 程序 硬指令 執(zhí)行性語句 使 CPU產(chǎn)生動作 、 并在程序執(zhí)行時才處理的語句 , 就是第 2章學(xué)習(xí)的處理器指令 與具體的處理器有關(guān) 、 與匯編程序無關(guān) 。 匯編后對應(yīng)一條指令代碼 偽指令 ( Directive) 說明性語句 不產(chǎn)生 CPU動作 、 在程序執(zhí)行前由匯編程序處理的說明性語句 ,例如 , 數(shù)據(jù)說明 、 變量定義等等 偽指令與具體的處理器類型無關(guān) , 但與匯編程序的版本有關(guān) 本課程采用微軟宏匯編程序 MASM 硬指令和偽指令采用易于記憶的符合表達(dá) , 這就是助記符 一 .匯編語言源程序格式 (4部分 ) 標(biāo)號 硬 指令的位置 (邏輯地址 ),后 加冒號 : 名字 偽 指令的位置或存儲單元名稱 (變量名 ) ,后 不加 冒號 : 一般最多由 31個字母 、 數(shù)字及規(guī)定的特殊符號 ( 如 _、 $、 ?、 @) 組成 不能以數(shù)字開頭 ( 如 1ABC錯 ) , 不能是 保留字 指令助記符 必須有 ,其它 3部分可無 偽 指令助記符 偽 指令 硬 指令助記符 硬指令 注釋 語句中由分號 “ ; ” 開始的部分為注釋內(nèi)容 , 用以增加源程序的可讀性 必要時 , 一個語句行也可以由分號開始作為階段性注釋 匯編程序在翻譯源程序時將跳過該部分 , 不對它們做任何處理 標(biāo)號 : 硬 指令助記符 操作數(shù) 1,操作數(shù) 2 。注釋 名字 偽指令助記符 參數(shù) 1,參數(shù) 2,… 。 注釋 例: 硬指令 Done: mov al,02h 偽指令 Sum db 02h [標(biāo)號 ] 指令助記符 [操作數(shù) ] [。注釋 ] 保留字 保留字 ( Reserved Word) 是匯編程序已經(jīng)利用的標(biāo)識符 ( 也稱為關(guān)鍵字 ) , 主要有: 硬指令助記符 —— 例如: MOV、 ADD 偽指令助記符 —— 例如: DB、 DW 操作符 —— 例如: OFFSET、 PTR 寄存器名 —— 例如: AX、 CS 預(yù)定義符號 —— 例如: @data 匯編語言大小寫不敏感 匯編語言源程序格式 操作數(shù) 操作數(shù) 常數(shù) 、 數(shù)值表達(dá)式 、 寄存器 、 標(biāo)號 、 變量等 數(shù)值表達(dá)式 一般是指由 運算符 連接的各種常數(shù)所構(gòu)成的表達(dá)式 匯編程序在匯編過程中計算表達(dá)式 , 最終得到一個確定的數(shù)值 , 所以也是常數(shù) 常用的 運算符 是加減乘除 ( + - * / ) 例: mov ax,3*4+5 ;等價于 mov ax,17 匯編語言源程序格式 操作數(shù) 操作數(shù) 常數(shù) 、 寄存器 、 標(biāo)號 、 數(shù)值表達(dá)式 、 變量等 常數(shù) 匯編時已確定的數(shù)據(jù) 如硬指令中立即數(shù) 二進(jìn)制數(shù) 如 MOV AL,10110101B 十進(jìn)制常數(shù) 如 MOV AL,181 十六進(jìn)制數(shù)常數(shù) 以字母開頭的十六進(jìn)制數(shù)前加 “ 0”。 例: MOV AL,0B5H 字符 和 字符串常 數(shù) 例 : MOV AX, ’ AB? 。AX?4142h MOV AX, ’ 1? 。AX?31h ? 用單引號括起來的單個字符或多個字符 , 其數(shù)值是每個字符對應(yīng)的 ASCII碼的值 .例如: 39。d39。 = 64H, 39。AB39。= 4142H 符號常數(shù) 用符號名表示一個常數(shù) ,可以提高程序的可讀性 , 同時更具有通用性 ? 符號定義偽指令格式 ? 等價 EQU偽指令 符號名 EQU 表達(dá)式 – 例 : XY EQU 5 ? 等號 =偽指令 符號名 =表達(dá)式 – 例 : XY=5 例 : XY EQU 5 MOV AH,XY 。 等價于 MOV AH,5 二 . 偽指令 1. 符號 (常量 )定義偽指令 EQU 符號常量使用符號名表達(dá)一個數(shù)值 格式 符號名 EQU 表達(dá)式 例 X EQU 7 ( 定義數(shù)據(jù)偽指令 ) 變量定義偽指令 為變量申請固定長度的存儲空間 , 同時將相應(yīng)存儲單元初始化 (參 數(shù) 為 ? 則不初始化 ) 。 格式為: 變量名 DB/DW/DD/DQ 參數(shù) 1, 參數(shù) 2, … DB(或 BYTE)定義字節(jié) 其后每個 參 數(shù)占 1個字節(jié) 存儲單元 DW(或 WORD)定義字 其后每個 參 數(shù)占 2個字節(jié) (先低字節(jié)后高字節(jié) )存儲單元 DD (或 DWORD) 定義雙字 其后每個 參 數(shù)占 4個字節(jié) 存儲單元 DQ (或 QWORD)定義 4個字 其后每個 參 數(shù)占 8個字節(jié) 存儲單元 多個存儲單元如果初值相同 , 可以用復(fù)制操作符 DUP進(jìn)行定義: 重復(fù)次數(shù) DUP(重復(fù)參數(shù) ) 變量 實質(zhì)指內(nèi)存單元的數(shù)據(jù) , 變量需要事先定義才能使用 .定義后的變量可用變量名等引用其中的數(shù)據(jù) , 即變量的數(shù)值 例: alpha byte 30h,2 DUP(55H),34h,? mov cx,alpha 。 cx?5530h mov bx,offset alpha mov al,[bx+3] 。al?34h 變量定義偽指令最常使用 字節(jié)變量定義實例 ;數(shù)據(jù)段 X db 61h, 0fbh db 2 dup(64h),? Y db 39。ABC39。 應(yīng)用 mov al,X dec X+1 mov Y,al ASCII ‘a(chǎn)’=61h ’A’=41h ‘B’=42h ‘C’=43h ;此處 X表示它的第 1個數(shù)據(jù),故 AL←61h ;對 X為始的第 2個數(shù)據(jù)減 1,故為 0fah ; Y=al=61h,現(xiàn)在 Y這個字符串成為 39。aBC39。 實例 ? 程序如下 count db 80h, 39。B39。,? maxint equ 04h number dw maxint array db maxint dup(3) mov cx,count dec byte ptr array mov bx,offset number mov ah,[bx+2] mov al,[bx2] hlt 問 :程序執(zhí)行后 ax=?cx=? 存儲單元 3 31=2 array 00 04H number ‘ B’ =42H 80H count 答案 : cx=4280h ah=2 al=42h 字變量定義實例 ;數(shù)據(jù)段 count dw 8000h,?,39。AB39。 maxint equ 64h number dw maxint array dw maxint dup(0) ASCII ’A’=41h ‘B’=42h ;數(shù)據(jù)段 字變量和字常量的定義: WNUM EQU 5678H 。定義 WNUM為常量 COUNT DW 20H 。定義 COUNT變量 , 假設(shè)在數(shù)據(jù)段的偏移地址為 0010H 。代碼段 字變量和字常量的應(yīng)用: MOV AX,[BX+SI+WNUM] 等價于 MOV AX,[BX+SI+5678H] MOV AX,COUNT 等價于 MOV AX,[0010H] 。AX?0020H MOV AX,[SI+COUNT] 等價于 MOV AX,[SI+0010H] LEA BX,COUNT 等價于 LEA BX,[0010H] 。BX ?0010H MOV BX,OFFSET COUNT 等價于 MOV BX,0010H 。 BX ?0010H ( Macro)命令偽指令 為簡化程序編制 , 對多次使用的程序 , 既可用子程序也可用宏指令 、 宏匯編實現(xiàn) 宏定義 宏是具有宏命令名的一段匯編語句序列 宏命令名 MACRO [形參數(shù) 1, 參數(shù) 2, ? ] ?? ;宏定義體 ( 硬指令 、 偽指令 ) ENDM 宏調(diào)用 宏命令名 [實參數(shù) 1, 參數(shù) 2, ? ] 宏 需要先 定義 , 然后才可在程序中 宏調(diào)用 , 形式上類似其他指令 , 常稱其為 宏指令 宏指令實際上是一段代碼序列的縮寫 。 在匯編時 , 宏指令被匯編程序用對應(yīng)的代碼序列替代 , 這就是 宏展開 因為是在匯編過程中實現(xiàn)的 宏展開 , 所以常稱為 宏匯編 宏 命令偽指令實例: *子程序設(shè)計 ;主程序 mov al,data call dpchar ;子程序 AL左移 4位 dpchar proc mov cl,4 sal al,cl ret dpchar endp *宏調(diào)用 mov al,data dpchar ;宏定義: AL左移 4位 dpchar macro mov cl,4 sal al,cl endm dpchar macro ;宏定義 mov cl,4 sal al,cl endm .model small .stack .code .startup mov al,data dpchar ;宏調(diào)用 .exit 0 end 宏與子程序的比較 比較 僅是源程序級的 簡化 :宏調(diào)用 在匯編時 進(jìn)行程序語句的展開 , 不需要返回;不減小目標(biāo)程序 , 執(zhí)行速度沒有改變 還是目標(biāo)程序級的 簡化 :子程序調(diào)用 在執(zhí)行時 由CALL指令轉(zhuǎn)向 、 RET指令返回;形成的目標(biāo)代碼較短 ,執(zhí)行速度減慢 宏 子程序 三 .匯編語言的運算符 變量和標(biāo)號的屬性 變量和標(biāo)號 具有邏輯地址和類型屬性 ,匯編程序提供有關(guān)的操作符 , 以便獲取這些屬性值 變量例 sum db 02h mov al,sum 標(biāo)號 例 done: mov al,02h Jmp done 邏輯地址屬性 取值運算符 SEG和 OFFSET 變量和標(biāo)號對應(yīng)存儲單元的邏輯地址 邏輯地址包含 :段地址和偏移地址 例: mov ax, offset sum 類型屬性 屬性運算符 PTR 變量名的類型可以是 BYTE( 字節(jié) ) 、 WORD( 字 ) 和 DWORD( 雙
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1