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

正文內(nèi)容

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

2025-05-11 01:42 本頁(yè)面
 

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