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

正文內(nèi)容

匯編語言之程序的基本結(jié)構(gòu)-資料下載頁

2025-04-09 01:49本頁面
  

【正文】 類型為EXE。在使用該存儲模式之前,、.486或其它偽指令來說明更高性能的CPU類型。也就是說:FLAT模式僅在386及其以后CPU模式下才能使用。在該程序中,所有代碼和數(shù)據(jù)位距的缺省值都是NEAR,子程序的類型也是NEAR,并且標(biāo)識符@CodeSize,@DataSize和@Model的值分別為:0、0和7。在FLAT存儲模式下,程序?qū)⒉皇褂枚渭拇嫫鱂S和GS。匯編程序在處理說明語句“.MODEL FLAT”時,將自動生成下列段寄存器說明語句:ASSUME CS:FLAT, DS:FLAT, SS:FLAT, ES:FLAT, FS:ERROR, GS:ERROR當(dāng)然,程序員也可把該段寄存器說明語句寫在其指令序列之中。二、語言類型。三、操作系統(tǒng)類型OS_DOS是當(dāng)前唯一支持的選項值,也是該選項的缺省值。四、堆棧類型。該選項有二個可選值:NEARSTACK和FARSTACK。其中:NEARSTACK是該選項的缺省堆棧類型。、NEARSTACK——堆棧段和數(shù)據(jù)段是同一段;、FARSTACK——堆棧段和數(shù)據(jù)段是不同的段,且堆棧不在段組DGROUP中。例如:.MODEL SMALL, C, OS_DOS, FARSTACK 簡化段定義偽指令簡化段定義偽指令在說明一個新段即將開始的同時,也說明了上一個段的結(jié)束。在本段定義結(jié)束時,也不必用偽指令“ENDS”來標(biāo)識。具體的偽指令說明形式及其功能描述如下:代碼段定義.CODE作用:說明其下面的內(nèi)容是代碼段中內(nèi)容。堆棧段定義.STACK [堆棧字節(jié)數(shù)]其中,“堆棧字節(jié)數(shù)”可以不寫,其缺省值為1024B。數(shù)據(jù)段定義.DATA / .DATA? / .CONST作用:說明其下面的內(nèi)容是數(shù)據(jù)段中的變量定義。在一個源程序中,這就好象在源程序中定義多個同段名的數(shù)據(jù)段一樣。?說明下面是一個未初始化數(shù)據(jù)段的開始。這二條偽指令很少使用,除非在與高級語言編寫的程序相結(jié)合時,為了遵守高級語言的某些約定,而需要特殊說明時才使用。匯編程序在處理簡化的堆棧段和數(shù)據(jù)段定義時,、.DATA、.DATA?。如果想定義一個獨立的、不與其它段組合在一起的數(shù)據(jù)段的話,那么,就可選用下面的數(shù)據(jù)段定義方式。遠程數(shù)據(jù)段定義.FARDATA [段名] / .FARDATA? [段名]其中:“段名”是可選項,如果不指定的話,則該段名就取其缺省段名。作用:說明一個獨立的數(shù)據(jù)段。?說明下面是一個未初始化的、獨立數(shù)據(jù)段的開始。通常情況下,很少使用該偽指令。 簡化段段名的引用當(dāng)使用簡化的段定義時,一般情況下,程序員可以不知道這些段的段名、段地址堆齊類型和組合類型等。但當(dāng)把簡化定義的段和標(biāo)準(zhǔn)定義的段混合使用時,就需要知道簡化定義段的基本屬性。 小模式下簡化段定義的缺省屬性表偽指令缺省段名對齊類型組合類型類別段組名.CODE_TEXTWORDPUBLIC39。CODE39?!?FARDATAFAR_DATAPARANONE39。FAR_DATA39。.FARDATA?FAR_BSSPARANONE39。FAR_BSS39?!?STACKSTACKPARASTACK39。STACK39。DGROUP.DATADATAWORDPUBLIC39。DATA39。DGROUP.DATA?BSSWORDPUBLIC39。BSS39。DGROUP.CONSTCONSTWORDPUBLIC39。CONST39。DGROUP在其它存儲模型下,由偽指令.CODE說明的代碼段段名在_TEXT之前還要加上其模塊名(源程序名)。假設(shè),某模塊名為ABC,則其缺省的代碼段段名就為ABC_TEXT。因此,在這種情況下,程序的模塊名或源程序名不要以數(shù)字開頭。 簡化段定義的方法.MODEL SMALL.STACK 128.DATAMSGDB Simplified Segment Directives.$.CODEMOVAX, @DATA。取數(shù)據(jù)段的段值MOVDS, AX。把給段寄存器DS賦值MOVDX, offset MSGMOVAH, 9HINT21hMOVAX, 4C00HINT21hEND另外,在匯編程序MASM中,還提供了二組簡化的代碼偽指令:.。、.STARTUP——在代碼段的開始,用于自動初始化寄存器DS、SS和SP;、.EXIT——用于結(jié)束程序的運行,它等價于下列二條語句:MOV AH, 4CHINT  21h當(dāng)使用匯編程序TASM時,以上二條偽指令分別改為:STARTUPCODE和EXITCODE。假設(shè)使用匯編程序MASM,那么。.MODEL SMALL.STACK 128.DATAMSGDB Simplified Segment Directives.$.CODE.STARTUP     。自動初始化寄存器DS、SS和SPMOVDX, offset MSGMOVAH, 9HINT21h.EXITEND 源程序的輔助說明偽指令除了以上一些使用率較高的偽指令外,還有一些使用頻率不太高的其它偽指令。下面僅列舉幾個這樣的偽指令。 模塊名定義偽指令NAME模塊名定義偽指令NAME說明該源程序的模塊名。該偽指令的一般格式如下:NAME [模塊名字符串] 頁面定義偽指令PAGE在源程序的開始,可用偽指令PAGE說明每頁的最大行數(shù)、每行的字符數(shù)。該偽指令的一般格式為:PAGE [[行數(shù)], 寬度]其中:“行數(shù)”的取值范圍為[10, 255],“寬度”的取值范圍為[60, 132]。如:偽指令“PAGE 60, 80”說明每頁最多有60行,每行最多有80個字符。如果要在某指定行之后強行換頁的話,那么,可在該行的下面書寫不帶操作數(shù)的偽指令PAGE。 標(biāo)題定義偽指令TITLE標(biāo)題定義偽指令TITLE說明打印的標(biāo)題,該標(biāo)題可有60個字符。該偽指令在源程序頭部只能書寫一次,其一般格式如下:TITLE [標(biāo)題字符串]如果程序中沒有使用NAME偽操作,則匯編程序?qū)⒂谩皹?biāo)題字符串”的前六個字符串作為其模塊名。如果程序中既無NAME偽操作,也無TITLE偽指令,那么,源文件名將作為模塊名。在匯編程序TASM環(huán)境下,標(biāo)題定義偽指令是%TITLE。 子標(biāo)題定義偽指令SUBTTL/SUBTITLE子標(biāo)題定義偽指令SUBTTL/SUBITLE說明打印頁上的子標(biāo)題,該子標(biāo)題也可有60個字符,它在每頁的第三行打印。該偽指令的一般格式如下:SUBTTL/SUBTITLE [標(biāo)題字符串] 習(xí)題、簡述ASSUME偽指令的作用,用該語句說明的段寄存器不用對其賦段地址的初值? 、用二種定義方法堆棧段,并給出相應(yīng)的初始化語句或說明。 、把下列C語句的語句改寫成功能相同的匯編語言程序片段(其中:變量都為整型變量)。 1)、h = (key amp。 0XFF00) 8。2)、k = (k + 39。139。 – 0xabcd) / 56。3)、for (i = s = 0。 i 100。 i++) s += data[i] * 2。4)、for (s = 0, i = 100。 i 0。 i) s += i * 2。 、把下列C語言的語句改寫成等價的匯編語言程序段(不考慮運算過程中的溢出)。 If (a1 || b/4 10 amp。amp。 c%8==5) { a = 20+b++?! = 2?!else {a = 21(++c)?! ?b?! 其中:變量a、b和c都是有符號的整型(int)變量。、假設(shè)內(nèi)存單元中有三個字a、b和c,編寫一個程序,它可判斷它們能否構(gòu)成一個三角形,若能,CF為1,否則,CF為0。 、假設(shè)有三個無符號字存放在以Buffer為開始的緩沖區(qū)中,編寫一個程序把它們從低到高排序好。 、編寫一個程序,它把一位十六進制數(shù)轉(zhuǎn)化成相應(yīng)的數(shù)字字符或大寫字母。 、編寫一個程序,它把一個合法的十六字符轉(zhuǎn)化成相應(yīng)的數(shù)值。 、編寫一個程序,它可統(tǒng)計32數(shù)DX:AX中二進制位是1的位數(shù)。 、編寫一個程序,它把CH和CL中的二進制位依次交叉存入AX中。 、編寫一個程序,求出從內(nèi)存單元1000:0000開始的1024個字的32位累加和,并把該值存入程序中的變量Data中。 、假設(shè)從變量Buff開始存放了200個字,編寫一個程序統(tǒng)計出其正數(shù)、0和負數(shù)的個數(shù),并把它們分別存入NN2和N3中。 、用雙重循環(huán)把下三角乘法表存入從product開始的45個字節(jié)中。 、表示源程序結(jié)束的偽指令是什么?在其后所編寫的指令在被匯編嗎? 、匯編語言程序一定會從代碼段的第一條指令開始執(zhí)行嗎?如果不是,如何指定程序的入口地址? 、編寫一個程序,它把字符串String兩端的空格刪除(字符串以0結(jié)束)。 、編寫一個程序,它把字符串String中的數(shù)字字符刪除掉(字符串以0結(jié)束)。 、編寫一個程序,它把AX的值以二進制字符串的形式存放在以buff開始的緩沖區(qū)中。 、假設(shè)有一個以Data為首地址的字緩沖區(qū),其緩沖區(qū)的大小在第一個字中,試編寫一個程序,求出該緩沖區(qū)數(shù)值的最大值和最小值,并分別存入DI和SI中。 、編寫一個程序片段,把32位數(shù)DX:AX向左移六位。
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1