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

正文內(nèi)容

微機原理第四章ppt課件(已修改)

2025-05-11 01:42 本頁面
 

【正文】 第 3章 匯編語言程序設(shè)計 一、機器語言、匯編語言和高級語言 機器語言 計算機中指令代碼以 二進(jìn)制編碼 表示,這種代碼 機器可以識別與執(zhí)行,把這種機器代碼稱為機器語言。 用機器語言編寫的程序稱為機器語言程序(或目的程序)。 例如 下面的機器代碼就是 8086CPU的三條機器指令 B8H, 00H, 30H 4EH, D8H B9H, 14H, 00H 用機器語言書寫的程序人們不易看懂,也不易記憶。看起來非常的乏味。但是計算機卻非常熟悉它。 匯編語言 用 助記符 代替操作碼,用 符號和數(shù)字 代替地址碼(或操作數(shù)),這種語言稱為匯編語言。 用匯編語言編寫的程序稱為匯編語言源程序。必須經(jīng)過翻譯,轉(zhuǎn)換成機器語言,計算機才能執(zhí)行。 匯編語言人們?nèi)菀子洃?,也容易看懂? 例如 用 8086CPU的匯編語言可以把上述的機器指令代碼寫成 MOV AX,3000H MOV DS,AX MOV CX,0014H 高級語言 ? 不依賴具體的機器,面向?qū)ο蟮挠嬎銠C語言稱為高級語言。如 BASIC, C, VB, VC等 ? 高級語言易記憶,易懂、便于學(xué)習(xí)與掌握 ? 匯編語言與高級語言的比較 匯編語言 高級語言 執(zhí)行速度快,占內(nèi)存小, 執(zhí)行速度慢,占內(nèi)存大, 實施控制方便,通用性差 通用性好,可移植性強 程序設(shè)計效率低, 依賴機器 程序設(shè)計效率高, 不依賴機器 與硬件打交道方便 。 與硬件打交道不方便 。 二、匯編程序 匯編程序是用來將匯編語言程序翻譯成機器代碼的系統(tǒng)(工具)程序。 匯編語言源程序 匯編語言 目標(biāo)程序文件 源程序列表 .ASM .OBJ .LST 翻譯 在 DOS環(huán)境下建立和運行匯編語言程序的過程 匯編語言程序的執(zhí)行過程: 編輯程序 . ASM 文件 匯編程序 . OBJ 文件 連接程序 . EXE 文件 Edit 等 MASM LINK 匯編程序的種類 、小匯編和宏匯編 8086/8088宏匯編程序 宏匯編程序 三、調(diào)試與運行 源文件編輯 任何文本編輯器均可用于編輯匯編語言的源程序。例如 dos下的 edit, turbo C集成環(huán)境的編輯器, Windows下的記事本、寫字板等。 匯編語言源程序以 ASCII碼形式存放于內(nèi)存中,擴展名應(yīng)為 .ASM,給源文件命名后可存盤,源程序用大寫、小寫皆可。 源文件匯編 用 Microsoft 的宏匯編程序( MASM)任何版本匯編皆可。匯編有下列幾種方式 方式 1: 在命令提示符下,鍵入 MASM? 屏幕上會出現(xiàn)如下提示,按照提示鍵入文件名回車即可 。 Source filename [.ASM]: xxx ? Object filename []: ? Source listing []:xxx ? Crosereference []:xxx ? + Bytes symbol space free 0 Warnimg Errors 0 Severs Errors 說明:匯編后生成 3個文件,即:目標(biāo)文件( .OBJ),列表文件( .LST),交叉引用文件( .CRF)。同時告訴程序員匯編有無錯誤(警告錯誤和嚴(yán)重錯誤)。無錯,匯編通過;有錯,則修改源程序的錯誤后,再次匯編。 方式 2 在命令行提示符下鍵入文件名與逗號和分號 C:\MASMMASM ABC 。 (生成 .OBJ文件,不產(chǎn)生 .LST和 .CRF) C:\MASMMASM ABC,。 (生成三個文件,名稱為 ABC) .OBJ文件中的地址操作數(shù)是可浮動的相對地址。 .LST文件把源程序與機器代碼(目的程序)都列表,可打印,顯示。 .CRF是用來對符號進(jìn)行前后對照的文件,可了解源程序中符號(或變量)定義或引用情況。 連接 在命令提示符下,鍵入 LINK ?, 或在 Windows下用鼠標(biāo)直接點擊 LINK,即可連接。 連接時屏幕顯示如下: Object Modules [.OBJ]:ABC ? Run File []: ? List File []:ABC ? Libraries [.LIB]: ? ( 注: MASM中沒有庫文件,可直接鍵入回車) Link: Warnimg L4201: no Stack Segment (其中, L4201表示連接程序錯誤信息代碼, 4表示警告錯誤,201為錯誤號。源程序中沒有堆棧段不影響連接。) LINK生成兩個文件: .EXE 為可執(zhí)行文件。 .MAP為內(nèi)存分配圖文件,提供了文件中的內(nèi)存地址分配的一些信息。 調(diào)試與運行 用 DEBUG與 Codeview軟件都可進(jìn)行目的代碼級程序的調(diào)試,對 .EXE文件可直接調(diào)入 DEBUG中跟蹤調(diào)試。 有錯誤需對源程序中的語句進(jìn)行修改,匯編中只能發(fā)現(xiàn)語法和符號等錯誤,不能發(fā)現(xiàn)編程中的邏輯錯誤。 Codeview窗口調(diào)試工具,使用時請參看有關(guān)資料。 匯編語言程序的結(jié)構(gòu) 匯編語言程序也是分段編寫的,每段最長 64K。 8088匯編語言的源程序是由多個段組成的, 一個可執(zhí)行的匯編程序一般 至少有一 個代碼段,其中包含可執(zhí)行的語句。 例:一個簡單的匯編程序 05 A2 00 10 85 array1 array2 DS CS my_data segment (數(shù)據(jù)段 ) again: Mov al,[si] array1 db 05,a2H,00,10H,85H Inc si n equ 5 Cmp al, 50 array2 db n dup(?) Jbe next my_data ends Mov [di], al my_code segment (代碼段) Inc di assume cs:my_code next: dec cx assume ds:my_data jnz again begin: mov ax, my_data mov ah,4ch mov ds, ax int 21h Lea si, array1 my_code ends Lea di, array2 end begin Mov cx, n 匯編語言語句的類型和組成 ? 語句類型 指令語句: 以 8086/8088指令為基本部分,必要時加上標(biāo)號 及注釋構(gòu)成。每一條語句產(chǎn)生相對應(yīng)的目標(biāo)代碼 。 偽指令語句: 為匯編程序和連接程序提供一些必要控制 的管理性語句。匯編時,偽指令 不產(chǎn)生目標(biāo)代碼。 宏指令語句: 由標(biāo)號、宏指令和注釋構(gòu)成。匯編時,將宏指 令展開還原為定義時的多條語句,再逐條匯編。 1. 指令語句及其格式 ? 指令語句即第二章介紹的 8086CPU的指令,每一條指令即可構(gòu)成一指令語句。每一指令都有對應(yīng)的機器代碼。 ? 指令語句格式 [標(biāo)號: ] 助記符 [操作數(shù), …] ; [注釋 ] 格式共有四部分:其中標(biāo)號,操作數(shù),注釋可以是任選項;助記符是必選項,該項在一條語句中不可省略。 標(biāo)號后面一定要跟一個冒號;注釋前一定加一分號。 偽指令語句及其格式 ? 偽指令語句不是真正的指令語句,它不產(chǎn)生機器代碼,它是匯編程序要求的,用來指示匯編程序做何種操作,定義 代碼段、數(shù)據(jù)段 在何處,是否產(chǎn)生列表等。 ? 偽指令語句格式 [名字 ] 定義符 [參數(shù), … ,參數(shù) ] ; [注釋 ] ? 格式共有四部分:其中名字,參數(shù),注釋可以是任選項;定義符是必選項,該項在一條偽指令語句中不可省略。對于有些語句,名字也是必需的。 ? 名字后面不要跟冒號:注釋前一定加一分號;各個參數(shù)之間用,分開。 3. 宏指令語句及其格式 宏指令語句: 為了書寫方便,把一個重復(fù)出現(xiàn)的匯編語句序列用一條指令代替,這種重新定義的指令就稱為 宏指令 。 這種由宏指令組成的語句稱為宏指令語句。 宏指令必須先定義,才能被使用,這稱為宏定義;在匯編時,又要把宏指令語句進(jìn)行宏展開,生成對應(yīng)的機器代碼。 宏指令語句格式將在后面應(yīng)用中介紹。 ( 標(biāo)識符) 匯編語言語句的四個域,一個語句行的基本格式為: [標(biāo)識符 ] 操作符 [操作數(shù) 1 ,操作數(shù) 2] ; [注釋 ] 標(biāo)識符 、 標(biāo)號 ( 名字 ) 標(biāo)號和名字 ( 變量 ) ? 標(biāo)識符可由數(shù)字、字母和下劃線等一串字符構(gòu)成,用于一段程序、一組(或一個)數(shù)據(jù)或一個段的開頭。使用時要注意以下 3點: ? 不能以數(shù)字開頭,數(shù)字可用在非開頭的其它位置; ? 其最大長度為 31個字符。 ? 指令語句中的名字(標(biāo)號)后跟冒號,而偽指令和宏指令的名字之后不跟冒號。 一般說來 , 名字項可以是標(biāo)號或變量 。它們都用來表示本語句的符號地址 , 它是可有可無的 , 只有當(dāng)需要用符號地址來訪問該語句時它才需要出現(xiàn) 。 標(biāo)號:標(biāo)號在代碼段中定義 , 后面跟冒號: , 它也可以用 LABEL或 EQU偽操作來定義 。 此外它還可以作為過程名定義 , 這將在以后的章節(jié)中加以說明 。 標(biāo)號經(jīng)常在轉(zhuǎn)移指令或 CALL指令的操作數(shù)字段出現(xiàn) , 用以表示轉(zhuǎn)向地址 。 標(biāo)號有三種屬性:段 、 偏移及類型 。 標(biāo)號實際上是用符號表示的地址 ( 其指令語句的符號地址 ) 。 段屬性 定義標(biāo)號的段起始地址 , 此值必須在一個段寄存器中 , 而標(biāo)號的段則總是在 CS寄存器中 。 偏移屬性 :標(biāo)號的偏移地址是 16位無符號數(shù) , 它代表從段起始地址到定義標(biāo)號的位置之間的字節(jié)數(shù) 。 類型屬性: 用來指出該標(biāo)號是在本段內(nèi)引用還是在其它段中引用的。如在段內(nèi)引用的,則稱為 NEAR,指針長度為 2字節(jié);如在段外引用,則稱為 FAR,指針長度為 4字節(jié)。 變量: 是存放在某些存儲單元中
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1