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

正文內(nèi)容

09通信工程微機(jī)原理及應(yīng)用授課內(nèi)容及教學(xué)安排-文庫(kù)吧

2025-06-10 05:09 本頁(yè)面


【正文】 代碼稱為機(jī)器碼或目標(biāo)程序。 匯編語(yǔ)言:面向機(jī)器的利用助記符、符號(hào)地址、變量和標(biāo)號(hào)等編寫程序的語(yǔ)言稱為匯編語(yǔ)言。(或簡(jiǎn)稱為:面向機(jī)器(或CPU)的編程語(yǔ)言) 源程序:用匯編語(yǔ)言編寫的程序稱為源程序。 匯編:由于用匯編語(yǔ)言編寫的程序機(jī)器(即CPU)不能夠直接執(zhí)行,必須翻譯成機(jī)器代碼(即二進(jìn)制代碼)組成的目標(biāo)程序,這個(gè)翻譯過程稱為匯編。(由于機(jī)器不能夠直接執(zhí)行用匯編語(yǔ)言編寫的程序,只能執(zhí)行由機(jī)器代碼(即二進(jìn)制代碼)組成的目標(biāo)程序,這個(gè)將匯編語(yǔ)言翻譯成機(jī)器代碼的過程稱為匯編。) 匯編程序:完成上述翻譯過程的軟件稱為匯編程序。例如而空操作指令NOP的機(jī)器碼為90H(見指令手冊(cè)),暫停指令HLT的機(jī)器碼為0F4H(見指令手冊(cè)),匯編程序在匯編時(shí)即將NOP和HLT指令分別翻譯成機(jī)器碼90H和0F4H后分別存入程序段存儲(chǔ)器中后CPU才能執(zhí)行。 反匯編:將機(jī)器代碼轉(zhuǎn)換成匯編語(yǔ)言的過程稱為反匯編。 程序代碼短小 執(zhí)行速度快 可以直接控制系統(tǒng)硬件 可以方便的編譯輔助計(jì)算機(jī)工作者掌握計(jì)算機(jī)體系結(jié)構(gòu) 一般匯編語(yǔ)言的框架結(jié)構(gòu)(見P117上面) ORG N 。定位源程序的存放位置,N為偏移地址 NAME1 SEGMENT [定位類型] 。段定義開始 語(yǔ)句1 。由n條語(yǔ)句構(gòu)成的語(yǔ)句體 語(yǔ)句2 ………………… 語(yǔ)句n NAME1 ENDS 。段定義結(jié)束 NAME2 SEGMENT 。段定義開始 語(yǔ)句1 。由m條語(yǔ)句構(gòu)成的語(yǔ)句體 語(yǔ)句2 ………………… 語(yǔ)句m NAME2 ENDS 。段定義結(jié)束 END 。源程序結(jié)束其中語(yǔ)句體中的語(yǔ)句按照功能或作用可分為以下3類: 指令語(yǔ)句:即:可執(zhí)行指令語(yǔ)句,為8086CPU的指令系統(tǒng),匯編時(shí)生成目標(biāo)代碼或機(jī)器碼。 偽指令語(yǔ)句:屬于非執(zhí)行語(yǔ)句,又稱之為管理語(yǔ)句或說明性語(yǔ)句,這類語(yǔ)句僅在源程序匯編過程中起作用(進(jìn)行符號(hào)定義、變量的內(nèi)存分配等),不會(huì)生成目標(biāo)代碼。 宏指令語(yǔ)句:屬于非執(zhí)行語(yǔ)句。宏是源程序中的一段具有獨(dú)立功能的程序代碼。而宏指令是用來對(duì)這段指令代碼序列進(jìn)行定義的,一旦這段指令代碼序列被定義為宏指令后,宏指令就像指令一樣可以在源程序中引用。由于宏指令可以代替一段程序代碼,因此可以簡(jiǎn)化源程序的書寫。如果這段代碼重復(fù)或多次出現(xiàn)時(shí),為了簡(jiǎn)化書寫可以在這段代碼出現(xiàn)的的位置處用一條宏指令(或稱之為符號(hào)指令)加以替代,即在該段程序出現(xiàn)處僅放一條定義后的宏指令即可。具體框架結(jié)構(gòu)舉例如下:ORG N 。定位源程序在內(nèi)存中的存放位置,N為偏移地址 DATA SEGMENT PARA NONE(默認(rèn))或PUBLIC‘DATA’。數(shù)據(jù)段定義開始 VAR1 DB 12 。定義變量1 VAR2 DB 34 。定義變量2 N1 DW 1234H 。定義變量3 N2 DW 5678H 。定義變量4 SUM DB 4 DUP(0) 。預(yù)留4個(gè)單元存放計(jì)算和,初值清0 RESULT DW ? 。定義計(jì)算結(jié)果存放單元初值不定 STRING1 DB ‘Where there is a will there is a way $’ 。定義字符串1存放單元, $為結(jié)束符 ………………… DATA ENDS 。數(shù)據(jù)段定義結(jié)束 STACK SEGMENT PARA NONE‘DATA’ 。堆棧段定義開始 DW 20 DUP(?) 。 ………………… STACK ENDS 。堆棧段定義結(jié)束 CODE SEGMENT 。代碼段定義開始 ASSUME CS:CODE,DS:DATA,SS:STACK[,ES:DAT] PUSH DS ;保護(hù)操作系統(tǒng)當(dāng)前的數(shù)據(jù)指針DS:00(現(xiàn)場(chǎng))以便執(zhí)行 XOR AX, AX ;完用戶程序后恢復(fù) PUSH AX MOV AX, SEG VAR1 ;獲取并建立用戶數(shù)據(jù)區(qū)的段基址 MOV DS, AX ;建立用戶段 MOV BX, OFFSET LED_TBL ;獲取用戶數(shù)據(jù)區(qū)的偏移地址 ………………… CODE ENDS 。代碼段定義結(jié)束 END 。源程序結(jié)束 宏匯編語(yǔ)言的基本語(yǔ)法 一、常數(shù)、變量和標(biāo)號(hào) 匯編語(yǔ)言程序語(yǔ)句=執(zhí)行性語(yǔ)句+非執(zhí)行性語(yǔ)句(即說明性語(yǔ)句) 執(zhí)行語(yǔ)句:由CPU或處理器指令組成。與CPU類型有關(guān),執(zhí)行后CPU都會(huì)產(chǎn)生相應(yīng)的操作。非執(zhí)行語(yǔ)句或說明性語(yǔ)句:由偽指令或宏指令組成。與CPU類型無關(guān),不產(chǎn)生CPU的任何操作,只與匯編程序有關(guān),不同版本的匯編程序支持不同的偽指令偽指令語(yǔ)句格式與執(zhí)行指令的語(yǔ)句格式基本相同,但其偽指令語(yǔ)句和執(zhí)行指令語(yǔ)句的作用大不不同,在匯編時(shí)偽指令語(yǔ)句不產(chǎn)生機(jī)器碼。僅用來告訴匯編程序如何將指令語(yǔ)句或偽指令語(yǔ)句中的操作數(shù)轉(zhuǎn)換成目標(biāo)代碼。 CPU或處理器指令中的操作數(shù)可以是立即數(shù)、寄存器和存儲(chǔ)單元。且立即數(shù)只能是整數(shù)。 執(zhí)行性語(yǔ)句中的標(biāo)號(hào)后要加冒號(hào)‘:’,而非執(zhí)行性語(yǔ)句的標(biāo)號(hào)后不能加冒號(hào)! 偽指令中的操作數(shù)可以是常數(shù)、字符串、常量名、變量名、標(biāo)號(hào)、表達(dá)式和專用符號(hào)(例如:BYTE、WORD、FAR、PARA)等,可以有多個(gè),各參數(shù)之間用逗號(hào)分隔。l 常數(shù):二、八、十、十六進(jìn)制數(shù),實(shí)數(shù)、帶引號(hào)的字符串(例如“AB”=41H、42H)等。l 標(biāo)號(hào):指令目標(biāo)代碼的符號(hào)地址。常用作轉(zhuǎn)移指令或子程序調(diào)用指令中的目的操作數(shù)。l 變量:存放在內(nèi)存單元中的數(shù)據(jù)或稱內(nèi)存數(shù)據(jù)(即對(duì)內(nèi)存數(shù)據(jù)起一個(gè)名,常被稱作存儲(chǔ)單元的符號(hào)地址)。這些數(shù)據(jù)在程序運(yùn)行期間可被隨時(shí)訪問或修改。其屬性有3個(gè):段屬性SEG:指出該變量所在的邏輯段。偏移屬性O(shè)FFSET:指出該變量所在邏輯段中相對(duì)該段起始點(diǎn)的偏移量。類型屬性TYPE:表示該變量所占用內(nèi)存單元的字節(jié)數(shù)。一般由數(shù)據(jù)定義偽指令進(jìn)行定義,常用數(shù)據(jù)定義偽指令有:DB:定義字節(jié)。見P160偽指令中的:DW:定義字。DD:定義雙字。變量在使用前必須要先進(jìn)行定義:即對(duì)其進(jìn)行命名、定義類型和預(yù)置初值變量定義偽指令的語(yǔ)句格式為:見P156([變量名] DB 表達(dá)式)變量名 變量類型 表達(dá)式1,表達(dá)式2,…其表達(dá)式形式如下:數(shù)值表達(dá)式:數(shù)或簡(jiǎn)單算術(shù)表達(dá)式。例如DATA1 DB 50H,50DATA2 DB 01,12,23,23+56DATA3 DW 1234H,2345H,3456H,56X78/28 ?表達(dá)式:不帶引號(hào)的?表示該內(nèi)存單元可為任意值DATA1 DB ?,? ;自DATA1地址開始預(yù)留2個(gè)單元DATA2 DB 1,2,3,?,?;前3個(gè)字節(jié)單元置初值,后2個(gè);字節(jié)單元隨意DATA3 DW ?,?,3456H,56X78/28 ;前2個(gè)字單元隨意,;后2個(gè)字單元預(yù)置初值字符串表達(dá)式:字符串必須用單引號(hào)括起來且不超過256個(gè)字符,存放時(shí)按字符串的書寫順序自左向右按地址遞增順序存放。 數(shù)據(jù)類型為DB時(shí),每個(gè)字符分配一個(gè)字節(jié)單元。 數(shù)據(jù)類型為DW時(shí),每2個(gè)字符為一組分配2個(gè)字節(jié)單元,前一字符在高地址字節(jié),后一字符在低地址字節(jié),每個(gè)數(shù)據(jù)項(xiàng)不能多于2個(gè)字符。數(shù)據(jù)類型為DD時(shí),每2個(gè)字符為一組分配4個(gè)字節(jié)單元,將字符存入低2個(gè)字節(jié)順序同DW,高2個(gè)字節(jié)存入00H.例1:STRING1 DB ‘ABCDEF’。即將41H46H存入自STRING1開始的連續(xù)6個(gè)字節(jié)單元中例2:STRING2 DW ‘AB’,‘CD’,‘EF’。即將41H46H存入自STRING1 [STRING2]=42H 。 開始的連續(xù)3個(gè)字單元中 [STRING2+1]=41H 。 [STRING2+2]=44H [STRING2+3]=43H [STRING2+4]=46H [STRING2+5]=45H 。 見P157圖73STRING3 DB ‘No thing impossible to a willing heart, Where there is a will there is a way $’ 。定義字符串2存放單元帶DUP的表達(dá)式:用于對(duì)多個(gè)內(nèi)存單元進(jìn)行重復(fù)設(shè)置。也稱重復(fù)數(shù)據(jù)操作符或重復(fù)數(shù)據(jù)操作偽指令(即:重復(fù)定義偽指令)。語(yǔ)句格式為:變量名 變量類型 表達(dá)式1 DUP (表達(dá)式2);其中表達(dá)式1為重復(fù)次數(shù),表達(dá)式2為重復(fù)內(nèi)容。例1:DATA1 DB 20H DUP (?);自DATA1地址開始預(yù)留20H個(gè);單元,內(nèi)容隨意。例2:DATA2 DW 20 DUP (0);將自DATA1地址開始的連續(xù)20個(gè);字單元(即40個(gè)字節(jié))清0二、常用表達(dá)式和運(yùn)算符:算術(shù)運(yùn)算符 邏輯運(yùn)算符 關(guān)系運(yùn)算符取值運(yùn)算符:(見P119) (1)SEG 求段基址 ;偽指令格式:SEG 符號(hào)名 例:SEG DATA1 ;求變量DATA1的段基址 (2)OFFSET 求偏移地址;偽指令格式:OFFSET 符號(hào)名 例:OFFSET DATA1 ;求變量DATA1的偏移地址(3)TYPE 求符號(hào)名或變量的類型值 ;偽指令格式:TYPE符號(hào)名;其變量的類型值見P119表4—1 例如:DATA1 DB 12DATA2 DW 1234HTYPE DATA1;=1 , TYPE DATA2;=2 其中DATADATA2的類型由上面的數(shù)據(jù)定義偽指令進(jìn)行定義 合成運(yùn)算符: 作用:修改變量或標(biāo)號(hào)原有的類型屬性,并臨時(shí)賦予其新的類型屬性。 (1)PTR的格式:定義符號(hào)名為新類型;格式:類型 PTR 符號(hào)名 例1:MOV AX,WORD PTR DATA1 ;將DATA1重新定義為字類型例2:MOV AL,BYTE PTR DATA2 ;將DATA1重新定義為字節(jié)類型 (2)THIS的格式: 新符號(hào)名 EQU THIS 類型 原符號(hào)名 類型 參數(shù),…… 注:THIS的功能與PTR的功能相同,只是格式不同。 常用偽指令 見P160 符號(hào)定義偽指令 作用:對(duì)所用符號(hào)進(jìn)行賦值 格式:符號(hào)名 EQU 表達(dá)式;定義后不能重新賦值 符號(hào)名 = 表達(dá)式;定義后可以重新賦值 內(nèi)存數(shù)據(jù)(即變量)定義偽指令:即:DB、DW、DD 作用:定義內(nèi)存變量的類型屬性 [變量名] DB 表達(dá)式 段定義偽指令 作用:對(duì)段進(jìn)行命名和定位 格式:段名 SEGMENT [定位方式] [連接方式] [‘類別名’] 編程時(shí)一般使用默認(rèn)值(即段邊界方式)即可。 定位方式是指段的起始地址常用的定位方式(見P124)如下:PAGA:頁(yè)邊界,即段起始地址的低8位為0PARA:段邊界,WORD;字邊界,即段起始地址的最低位為0BYTE:任意值 段寄存器說明偽指令 格式:ASSUME 段寄存器名:段定義名1… 過程定義偽指令: 格式:過程名 PROC [NEAR或FAR];括號(hào)內(nèi)為過程屬性 ………… 過程名 ENDP 模塊開始偽指令: 格式:NAME 模塊名作用:對(duì)程序模塊進(jìn)行命名,模塊名可以自行定義,但不能使用關(guān)鍵字!可以默認(rèn),其默認(rèn)名為列表文件標(biāo)題的前6個(gè)字符,若無標(biāo)題時(shí)則默認(rèn)名為該程序模塊的源文件名。 模塊結(jié)束偽指令: 格式:END [啟動(dòng)標(biāo)號(hào)或過程名]作用:通知匯編程序源文件結(jié)束,并給出執(zhí)行程序的入口地址。啟動(dòng)地址只有在主程序模塊才有意義。 定位偽指令: 格式:ORG 表達(dá)式作用:指定數(shù)據(jù)或程序在內(nèi)存中的起始偏移地址,從表達(dá)式指定的起點(diǎn)開始連續(xù)存放直到遇到新的ORG指令為止。表達(dá)式為無符號(hào)數(shù)。 列表偽指令: (1)建立標(biāo)題: 格式:TITLE 標(biāo)題 作用:為列表文件每頁(yè)的第1行定義大標(biāo)題 (2)建立小標(biāo)題:格式:SUBTTL 標(biāo)題 作用:為列表文件每頁(yè)定義小標(biāo)題,輸出在大標(biāo)題之后。 (3)自動(dòng)排版: 格式:PAGE 行數(shù),每行字?jǐn)?shù)(即列數(shù))作用:為列表文件定義每頁(yè)行數(shù)(10—255行)和每行字符數(shù)(60132),默認(rèn)值是66行80列。偽指令或說明性語(yǔ)句的作用:對(duì)變量、工作單元或符號(hào)等進(jìn)行定義或說明,以增加程序的可讀性等。例如:已知16位電風(fēng)扇轉(zhuǎn)速測(cè)量值存放在2000H和2001H(高8位)單元中,8位溫度測(cè)量值存放在2002H單元中,試編一個(gè)程序?qū)⑥D(zhuǎn)速測(cè)量值送AX寄存器中,溫度測(cè)量值送DL 寄存器中。程序1: MOV AX, [2000H] ;將轉(zhuǎn)速測(cè)量值送AX寄存器 MOV DL, [2002H] ;將溫度測(cè)量值送DL寄存器 分析:盡管程序簡(jiǎn)單,但不知內(nèi)存單元中存放的是何數(shù)據(jù),缺乏可讀性!程序2: DATA SEGMENT ;段定義偽指令 ORG 2000H ;對(duì)存放數(shù)據(jù)的偏移地址進(jìn)行定位偽指令 ZS DW 0 ;分配轉(zhuǎn)速存放單元 WD DB 0 ;定義溫度存放單元 DATA ENDS ……………………………………………MOV AX, ZS ;將轉(zhuǎn)速測(cè)量值送AX寄存器 MOV DL, WD ;將溫度測(cè)量值送DL寄存器由此可知利用偽指令對(duì)工作單元或變量進(jìn)行了定義后,使得程序具有了可讀性!應(yīng)用舉例:已知待顯示的數(shù)據(jù)在DATA單元中,系統(tǒng)采用2位L
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1