




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、主要內(nèi)容: 宏匯編語言的語法 匯編程序與上機(jī)過程 表達(dá)式 語句 偽指令,第五章 匯編語言及匯編程序,重 點(diǎn) 1.介紹宏匯編語言的語法 2.介紹系統(tǒng)功能調(diào)用 3.匯編過程 難 點(diǎn) 偽指令的格式與應(yīng)用,第一節(jié) 宏匯編語言的語法,機(jī)器語言:機(jī)器能識(shí)別并執(zhí)行,稱目標(biāo)程序,是二進(jìn)制碼。 匯編語言:用指令助記符、符號(hào)地址、標(biāo)號(hào)等書寫的語言。 匯編語言源程序:用匯編語言編寫的程序。 匯編:匯編語言源程序 目標(biāo)程序,一.偽指令格式,偽指令:指示性語句.不產(chǎn)生機(jī)器目標(biāo)代碼. 1) 標(biāo)號(hào)字段: 任選字段,標(biāo)號(hào)名后不能用冒號(hào)“:”,這是與指令 性語句的突出區(qū)別. 2) 偽指令字段 數(shù)據(jù)定義偽指令:DB,DW 段定義
2、偽指令:SEGMENT,ENDS 3) 操作數(shù)字段: 4) 注釋字段,二.常數(shù)、變量和標(biāo)號(hào),1.常數(shù):(1) 數(shù)字常量: (2)字符串常量:ASCII碼 2.變量 變量是代表存放在存儲(chǔ)單元的數(shù)據(jù)。 變量名,可認(rèn)為是存放數(shù)據(jù)的存儲(chǔ)單元的符號(hào)地址 變量的屬性: 段值、偏移量、類型(BYTE,WORD,DWORD),定義變量的偽指令 符號(hào) DB/DW/DD /DQ(8)/DT(10)表達(dá)式 例1:DAT1 DB 12H DAT2 DB 34H DAT3 DW 5678H 例2:DAB DB ?,? DAW DW ?, ?,例3:STRING1 DB ABCDEF STRING2 DW AB,CD S
3、TRING3 DD AB,CD,例4:帶DUP的表達(dá)式 DB1 DB ?,?,?,?,?,? DB2 DB 6 DUP(?) DB3 DB 10 DUP(4) 3.標(biāo)號(hào) 標(biāo)號(hào)是一條指令的目標(biāo)代碼的符號(hào)地址。 屬性有: 段 值(SEG) 偏移量(OFFSET) 距離屬性:NEAR(近),只能被本段內(nèi)訪問。 FAR(遠(yuǎn)),可以被其它段訪問 。,三、表達(dá)式與運(yùn)算符,表達(dá)式由操作數(shù)和運(yùn)算符組成,匯編時(shí)產(chǎn)生一個(gè)值。 1.算數(shù)運(yùn)算符:+ - * MOD,取余運(yùn)算符 SHL,左移運(yùn)算符 SHR,右移運(yùn)算符 例: 32 MOD 5 ;匯編時(shí),得到的值=2 2.邏輯運(yùn)算符: AND、OR、NOT、XOR 例:
4、24H OR 0FH ;匯編時(shí),得到的值=2FH,3.關(guān)系運(yùn)算符: 關(guān)系運(yùn)算符是邏輯判斷式,為真時(shí),結(jié)果取0FFFFH,為假時(shí),結(jié)果取0。 EQ(等于)、NE(不等于)、 LT(小于)、GT(大于)、 LE(小于等于)、GE 例:25 LT 26 ;其值=0FFFFH 26 GT 25 ;其值=0FFFFH 24 GE PP ;其值=0,4.分析運(yùn)算符 SEG OFFSET TYPE LENGTH SIZE (1)SEG:操作數(shù)的段地址 (2)OFFSET:操作數(shù)地址的偏移量 例: TABLE DW 67,89 . MOV AX,SEG TABLE MOV BX,OFFSET TABLE MO
5、V CX,TABLE,(3)TYPE 求符號(hào)名類型的數(shù)值(P163) 格式:TYPE (符號(hào)名) 符號(hào)名類型值:DB: 送 1,DW:送 2,DD:送 4 例:ARRY DW 1,2 MOV SI ,TYPE ARRAY 匯編為:MOV SI,2 (4)LENGTH 為符號(hào)名分配的項(xiàng)數(shù)。 格式:LENGTH (符號(hào)名) 使用DUP,回送變量的單元數(shù);否則送1。 例:SUM DW 100 DUP(0) MOV CX, LENGTH SUM 匯編后:MOV CX,100,(5) SIZE 變量:回送分配給變量的字節(jié)數(shù)。 格式:SIZE (符號(hào)名) 例: SUM DW 100 DUP(0) MOV
6、DX, SIZE SUM 匯編后:MOV DX, 200 5.組合運(yùn)算符 (1) 定義符號(hào)名為新類型 格式:類型 PTR (符號(hào)名) 例: OPER1 DB 10H,21H,30H,45H MOV AX,WORD PTR OPER1+2 ;AX 4530H,(2).指定新類型THIS 格式: THIS (類型) 例: LABC EQU THIS BYTE LABD DW 4321H,2255H MOV AL, LABC ;AL=21H MOV AX, LABD ;AX=4321H 符號(hào)LABC與LABD有相同的段地址和偏移地址, LABC是字節(jié)類型, LABD是字類型. 6.分離運(yùn)算符 格式:
7、 LOW :取低字節(jié) 格式: HIGH :取高字節(jié),宏匯編語言的語法小節(jié) 偽指令格式 偽指令:指示性語句.不產(chǎn)生機(jī)器目標(biāo)代碼. 常數(shù)、變量和標(biāo)號(hào) 變量的屬性:段值、偏移量、類型。 標(biāo)號(hào)屬性有:段 值、偏移量、距離屬性。 表達(dá)式與運(yùn)算符 表達(dá)式由操作數(shù)和運(yùn)算符組成,匯編時(shí)產(chǎn)生一個(gè)值。 1.算數(shù)運(yùn)算符:+ - * / 2.邏輯運(yùn)算符:AND OR NOT XOR,3.關(guān)系運(yùn)算符:EQ NE LT GT 4.分析運(yùn)算符: SEG OFFSET TYPE LENGTH SIZE 5.組合運(yùn)算符 PTR THIS 6.分離運(yùn)算符 LOW HIGH,第二節(jié) 偽指令,偽指令:匯編時(shí)不產(chǎn)生機(jī)器代碼,而是由 M
8、ASM識(shí)別,又稱匯編命令。 一、標(biāo)號(hào)賦值偽指令 格式: EQU EQU 功能:把表達(dá)式的值賦給符號(hào)名。 解除語句: 格式:PUREG 符號(hào)1,符號(hào)2,符號(hào)3 功能:解除對(duì)符號(hào)1、符號(hào)2、符號(hào)3的賦值。,例: PORT1 EQU 3 PORT2 EQU PORT1+2 PORT3 EQU PORT2 CONT EQU CX 即: PORT1=3 ,PORT2=5 PORT3=5 ,CX與CONT意義相同 PUREG PORT1 ;解除PORT1的賦值 PORT1 EQU 10 即: PORT1 = 10,二、內(nèi)存數(shù)據(jù)定義偽指令 格式: 字 節(jié) 定 義: 符號(hào) DB 表達(dá)式 字 定 義: 符號(hào) D
9、W 表達(dá)式 四字節(jié)定義: 符號(hào) DD 表達(dá)式 八 字 定義: 符號(hào) DQ 表達(dá)式 十字節(jié)定義 : 符號(hào) DT 表達(dá)式 例: SOB DB ? SUM DW ? SLEV DD ? TAB1 DB 28 N1 DD 2.5, 3.2E+2,例:有如下定義 TABLE1 DD 0,1,2,3 TABLE2 DB 30H,31H,32H,33H TABLE3 DB 12345678910 ZER DW 8 DUP(0) DEM DB HELLO? 判斷下列指令是否正確: 1. MOV AX,TABLE1 2. MOV BX,TABLE2 3. MOV AL, TABLE3 4. MOV AX, WO
10、RD PTR TABLE1, ,三、定義存儲(chǔ)單元的類型 功能:指定存儲(chǔ)單元的類型是字節(jié)型. 功能:指定存儲(chǔ)單元的類型是字節(jié)型. 功能:指定存儲(chǔ)單元的類型是字節(jié)型. 例:有如下定義: SUM DB 12H , 80H TAB DW 1234H1).MOV AX,WORD PTR SUM 匯編后: MOV AX,8012H 2).MOV BH,BYTE PTR TAB 匯編后: MOV BH,34H,BYTEWORD DWORD,四、段定義語句(p166) 格式: 段名 SEGMENT 定位方式 連接方式 類別 . 段名 ENDS (1)定位方式:指定段的起始地址邊界. 4種: PARA(頁邊界)
11、 (能被256除) PAGE(段邊界) (能被16除) WORD(字邊界) (能被2除) BYTE (2)連接方式 6種:PUBLIC STACK 空 COMMON MEMORY AT (3)類別名,五.段說明 ASSUME :給各程序段指定段寄存器 六.過程定義語句過程定義格式: 過程名 PROC NEAR或FAR RET 過程名 ENDP 過程調(diào)用格式: CALL 過程名 七.定位偽指令 ORG 2000H;指定起始地址的偏移量,八. 結(jié)束偽指令 格式: END 啟動(dòng)標(biāo)號(hào)或過程 九. 定位偽指令 格式: ORG 表達(dá)式 十. 列表為指令 TITLE SUBTTL PAGE 十一.連接偽指令
12、 PUBLIC EXTRN INCLUDE GROUP 十二.其它,第三節(jié) 宏指令,為了簡(jiǎn)化匯編語言的書寫,把一些頻繁出現(xiàn)的程序段定義為“宏指令”. 在匯編過程中,將宏指令所代替的程序段匯編成相應(yīng)的機(jī)器代碼,并插入到源程序中 宏指令要使用前:(1)宏定義 (2)宏調(diào)用 (3)宏擴(kuò)展,1.宏代換 格式:宏名 MACRO 形式參數(shù)1,形式參數(shù)1, ENDM 功能:為指令序列定義一個(gè)宏名,稱為宏指令. 2.局域符號(hào)定義語句 格式: LOCAL 符號(hào)符號(hào)1,符號(hào)2, 功能:指出符號(hào)1,符號(hào)2,僅在宏代換中有意義. 3.刪除宏定義語句 格式: PURGE 宏定義名1宏定義名2, 功能:注銷程序中引用的宏
13、指令. 4.退出宏定義語句 格式:EXITM,5.重復(fù)定義語句 格式: IRPC 形式參數(shù),字符串 指令序列 ENDM 6.包含語句: 格式: INCLUDE 文件名 ;把命令后的文件插入該語句處一起編譯. 例:定義一條宏指令,完成算術(shù)左移. SHT MACRO X,Y MOV CL,X SAL Y,CL ENDM 宏調(diào)用: SHT 6,BL 經(jīng)宏展開: MOV CL,6 SAL BL,CL,第四節(jié) 系統(tǒng)功能調(diào)用,主要內(nèi)容:系統(tǒng)功能調(diào)用 一.簡(jiǎn)介 MS-DOS設(shè)置了幾十個(gè)內(nèi)部子程序,可以完成 I/O設(shè)備管理,存儲(chǔ)管理,文件管理,合作業(yè)管理.它們被做成中斷服務(wù)程序,其入口地址已由系統(tǒng)置入中斷向量
14、表中,可以用軟中斷指令調(diào)用. 類型號(hào):2027H 系統(tǒng)功能調(diào)用:INT 21H,二、DOS系統(tǒng)功能調(diào)用,1.DOS系統(tǒng)功能調(diào)用格式 1)、在AH中設(shè)置功能號(hào) 2)、在指定的積存器中設(shè)置入口參數(shù) 3)、用INT21H指令執(zhí)行系統(tǒng)功能調(diào)用 4)、根據(jù)出口參數(shù)分析執(zhí)行情況 2.DOS系統(tǒng)功能調(diào)用INT 21H的部分I/O操作 1). 鍵盤輸入一個(gè)字符并回顯 功能號(hào)AH=01H,出口參數(shù) AL=字符; 使用格式: MOV AH , 01H INT 21H,2). 鍵盤輸入字符到緩沖區(qū): 功能號(hào) :AH=0AH, 入口參數(shù) :DS:DX=緩沖區(qū)首址 使用格式 BUF DB 20 DB ? DB 20 D
15、UP (?) MOV DX , OFFSET BUF MOV AH , OAH INT 21H,3).輸出一個(gè)字符 功能號(hào) :AH=2 入口參數(shù) :DL=字符,光標(biāo)隨字符移動(dòng) 使用格式: MOV DL , A MOV AH , 02H INT 21H 執(zhí)行上面程序后,將在屏幕上顯示字符 A. 4).輸出字符串, 功能號(hào) : AH=9, 入口參數(shù) :DS:DX=串地址,字串結(jié)束為“$”符號(hào) 使用格式: BUF DB HELLO! MOV DX, OFFSET BUF MOV AH, 09H INT 21H .,5)直接控制臺(tái)輸入輸出單字符 功能號(hào):AH=06H 入口參數(shù):DL=0FFH(輸入)
16、DL=字符(輸出) 出口參數(shù):AL=輸入字符 6)鍵盤輸入一個(gè)字符無回顯 功能號(hào):AH=08H 出口參數(shù):AL=字符; 7)返回DOS系統(tǒng) 功能號(hào):AH=4CH 8)清鍵盤緩沖區(qū),并調(diào)用一種鍵盤功能 功能號(hào):AH=0CH AL=鍵盤功能號(hào)(1、6、7、8、0AH),9).從串口輸入單字符 AH=03H 入口參數(shù)AL=字符 10)向串口輸出單字符 AH=04H 出口參數(shù)DL=字符 11)設(shè)置時(shí)間:INT 21/2BH year:mounth:day=CX:CH:CL 12)取得時(shí)間:INT21H/2AH 13)取得日期:INT21H/2CH,第五節(jié) 匯編過程,一.匯編程序的功能 將匯編語言源程序
17、翻譯成機(jī)器語言編寫的目標(biāo)程序.并可輸出列表文件 檢查語法并給出錯(cuò)誤信息 展開宏指令 常用匯編程序:ASM 和MASM,二.程序的編輯、匯編與連接,1.建立源文件 用編輯軟件完成.常見軟件:Edit、Pe、Q 2.匯編源程序 用匯編程序MASM對(duì)源程序進(jìn)行匯編 3.連接產(chǎn)生可執(zhí)行文件 用連接程序LINK對(duì).OBJ進(jìn)行連接, 產(chǎn)生可執(zhí)行 文件; 4.執(zhí)行程序,5.調(diào)試程序 DEBUG程序是專為宏匯編語言設(shè)計(jì)的一種調(diào)試程序. DEBUG程序的命令 D命令:顯示內(nèi)存內(nèi)容 I命令:輸入命令 O命令:輸出命令 U命令:反匯編 Q命令:退出DEBUG T命令:單步執(zhí)行 P命令:單步執(zhí)行命令,指給出指令執(zhí)行結(jié)
18、果,data segment a1 db hellon!,0dh,0ah,$ data ends code segment assume cs:code,ds:data start:mov ax,data mov ds,ax mov dx,offset a1 mov ah,09h int 21h mov ah,4ch int 21h code ends end start,看一個(gè)例子,第六節(jié) 匯編語言程序設(shè)計(jì),程序設(shè)計(jì)思想: 模塊化(結(jié)構(gòu)化)程序設(shè)計(jì)思想 面向?qū)ο蟪绦蛟O(shè)計(jì)思想 匯編語言程序設(shè)計(jì): 模塊化程序設(shè)計(jì)方法: 1)子程序設(shè)計(jì)是模塊化程序設(shè)計(jì)的基礎(chǔ) 2)模塊化:將一個(gè)較大的程序分解為多個(gè)
19、具有獨(dú)立功能的程序模塊,這些獨(dú)立模塊稱為子程序或過程. 3)將各個(gè)模塊組裝聯(lián)調(diào),完成整個(gè)程序,補(bǔ)充例1: 編程序?qū)L中的二進(jìn)制數(shù),轉(zhuǎn)換成16進(jìn)制數(shù)的ASCII碼, 存于DI指向的內(nèi)存2個(gè)單元中。 解:1)分析題目 2)確定算法 (1)、把二進(jìn)制數(shù)置AL中,AL中的數(shù)從左到右,轉(zhuǎn)換成ASCII碼,用循環(huán)左移ROL和AND指令; (2)、0 9 的ASCII碼:30 39H A F 的ASCII碼:41H 46H。 判斷是否為數(shù)字0 9?若是,加30H;否則,是A F,再加07H,得字母的ASCII碼。,DI指向結(jié)果單元,BL=2,AL 一個(gè)字符的16進(jìn)制數(shù), 10?,AL AL+30H 存AS
20、CII碼,Y,AL=AL+07H,N,G1,BL=0?,BL BLX-1,N,Y,存ASCII碼,3)程序流圖,4)程序:(看源程序EXCH2_16.ASM) (子程序EXCH2_16: 入口參數(shù)=二進(jìn)制數(shù), 出口參數(shù)=DI指向16進(jìn)制數(shù)的ASCII碼) EXCH2_16 PROC FAR PUSH CX ;保護(hù)現(xiàn)場(chǎng) PUSH BX PUSH DI MOV BL,2 ;需轉(zhuǎn)換2次 MOV BH, AL ;AL中的數(shù)暫存BH MOV CL, 4 ;置移位位數(shù) ROL AL, CL ;循環(huán)左移4位 G2: AND AL, 0FH ;得到低4位,CMP AL,10 ; BL 10? JB S ; B
21、L10,轉(zhuǎn) ADD AL,07H ;大于10,加7 S: ADD AL,30H MOV DI,AL ;存ASCII碼 INC DI ;修改地址 MOV AL,BH DEC BL JNZ G2 ;2個(gè)數(shù)沒轉(zhuǎn)換完,繼續(xù) POP DI ;恢復(fù)現(xiàn)場(chǎng) POP BX POP CX RET ;子程序返回 EXCH2_16 ENDP,補(bǔ)充例2:在數(shù)據(jù)段DAT2開始的單元存放一個(gè)ASCII碼字符串,編程序顯示這些字符,要求每?jī)蓚€(gè)字符之間用空格隔開.顯示數(shù)據(jù)用DOS功能2號(hào)調(diào)用. 1)分析題目 2)畫出框圖 INT 21H 的2號(hào)功能:顯示單個(gè)字符,DL=字符. 3)編寫程序(看源程序DISPLAY.ASM) 寫
22、成子程序:DISPLAY: 入口參數(shù):用DI指向ASCII碼區(qū)首地址; CX放要顯示字符的總數(shù); 4)調(diào)試程序,;顯示ASCII碼字符子程序 DISPLAY PROC NEAR MOV BL,2 MOV DL,DI G: MOV AH,2 INT 21H INC DI ;指向下一個(gè)要顯示的數(shù) DEC BL JNZ T ;連續(xù)顯示2個(gè)數(shù),未完繼續(xù) MOV DL, ;顯示一個(gè)空格 MOV AH,2 INT 21H MOV BL,2 T: LOOP G ;未全部顯示完繼續(xù) RET DISPLAY ENDP,例 1(P183) (1)設(shè)計(jì)要求 在源程序中設(shè)置數(shù)據(jù)段、堆棧段及代碼段。在數(shù)據(jù)段中定義八個(gè)字
23、節(jié)數(shù)據(jù),把這些數(shù)據(jù)轉(zhuǎn)換成16進(jìn)制數(shù)的ASCll碼存在上述數(shù)據(jù)之后,然后在屏幕上顯示這些數(shù)據(jù)。顯示數(shù)據(jù)用DOS功能2號(hào)調(diào)用,每個(gè)數(shù)據(jù)用空格分隔。 (2)程序流程:程序流程如圖76和圖77所示。 (3)程序: 子程序EXCH2_16:功能,將AL中的2進(jìn)制數(shù)轉(zhuǎn)換為16進(jìn)制數(shù)的ASCII碼,存DI指向的單元. 子程序DISPLAY:功能,顯示ASCII碼.入口參數(shù):DI指向ASCII碼區(qū),CX是ASCII碼區(qū)長(zhǎng)度.,開 始,設(shè)8個(gè)字節(jié)數(shù),定義ASCII碼區(qū),設(shè)數(shù)據(jù)區(qū)指針SI,設(shè)ASCII碼指針DI 設(shè)數(shù)據(jù)區(qū)長(zhǎng)度CX,ALSI,調(diào)用轉(zhuǎn)換程序EXCH2_16,SI SI+1 CX CX-1,CX=0?,
24、調(diào)顯示子程序DISPLAY,結(jié)束,3)程序如下:(看源程序z7_6_1.asm) NAME EX2 PAGE 50,70 ;-DATA DEFINE- DATA SEGMENT ;數(shù)據(jù)段定義 DAT1 DB 30H,34H,42H,43H,44H,45H B1=$-DAT1 B2=B1*2 DAT2 DB B2 DUP(?) DATA ENDS STACK SEGMENT ;定義堆棧段 STA DW 100 DUP(?) STACK ENDS,CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MO
25、V AX,STACK MOV SS,AX ;初始化堆棧區(qū) MOV AX,100 MOV SP,AX ;置堆棧指針 MOV SI,OFFSET DAT1 ;指向數(shù)據(jù) MOV DI,OFFSET DAT2 ;指向ASCII碼區(qū) MOV CX,B1 ;送需轉(zhuǎn)換字節(jié)數(shù) DO: MOV AL,SI ;取一個(gè)字節(jié)到AL CALL EX2_16 ;調(diào)轉(zhuǎn)換子程序 INC SI ;指向下個(gè)數(shù) LOOP DON,MOV DI,OFFSET DAT2 ;指向ASCII碼區(qū) MOV CX,B1 CALL DISPLAY ;調(diào)顯示子程序 MOV AH,4CH ;返回DOS INT 21H EXCH2_16 PROC N
26、EAR ;轉(zhuǎn)換子程序 . EXCH2_16 ENDP DISPLAY PROC NEAR ;顯示子程序 . DISPLAY ENDP CODE ENDS END START,例2: (1)設(shè)計(jì)要求:設(shè)計(jì)多字節(jié)減法運(yùn)算程序,要求程序能顯示運(yùn)算數(shù)據(jù)和結(jié)果數(shù)據(jù)(16進(jìn)制) 分模塊設(shè)計(jì)要求: 多字節(jié)減法 9900664488H-885522H=? 數(shù)據(jù)按逆序存放:先低位后高位 多字節(jié)顯示: 先顯示高位,后低位 回車換行操作 (2)程序流圖,9900664488 885522,98FFCDEF66,NAME EX2 PAGE 50,70 PUBLIC D1,D2,N1,N2 EXTRN EX21;FAR
27、 EXTRN EX22;FAR ; DAT SEGMENT PARA DAT D1 DB 88H,44H,66H,00H,99H N1= 一D1 D2 DB 22H,55H,88H N2= - DZ DAT ENDS STAC SEGMENT PARA STACK STA1 DW 100 DUP(?) STAC ENDS . STA PROC FAR .,. STD ; LEA SI,D1 ADD SI,N1-1 ;指向被減數(shù)D1高位字節(jié) MOV CX,N1 ;被減數(shù)D1長(zhǎng)度送CX CALL EX21 ;顯示被減數(shù) CALL PP2 ;回車與換行 LEA SI,D2 ADD SI,N2-1 ;
28、指向減數(shù)D2高位字節(jié) MOV CX,N2 ;減數(shù)D2長(zhǎng)度送CX CALL EX21 ;顯示減數(shù) CALL PP2 ;回車與換行 CALL EX22 ;調(diào)用多字節(jié)減法子程序 LEA SI,D1 ADD SI,N1-1 ;指向結(jié)果單元高位字節(jié) MOV CX,N1 CALL EX21 ;顯示結(jié)果 RET STA ENDP,多字節(jié)減法子程序: EX22 PROC FAR . LEA SI,D1 ;指向被減數(shù) LEA DI,D2 ;指向減數(shù) MOV BX,N1 ;送被減數(shù)長(zhǎng)度 MOV CX,N2 ;減數(shù)字節(jié)數(shù) MM: MOV AL,DI SBB SI,AL ;帶借位減 INC DI ;指向下一個(gè)字節(jié) I
29、NC SI DEC BX LOOP MM M1: JZ M2 ; JNC M2 SBB BYTE PTR SI,0 INC SI DEC BX JMP M1 M2: RET EX22 ENDP,;多字節(jié)二進(jìn)制數(shù)轉(zhuǎn)換成16進(jìn)制數(shù)并顯示(P186) NAME EX21 PUBLIC EX21 CODE SEGMENT PARA CODE EX21 PROC FAR . F: LOBSD ;ALSI . RET EX21 ENDP CODE ENDS END,例3排序程序設(shè)計(jì) 排序是把表中元素按某種規(guī)律排列起來,排序需要事先約定排序條件,稱為關(guān)鍵條件。表中元素按值的大小升序或降序排列。 (1)設(shè)計(jì)要
30、求 設(shè)源程序代碼段中有無序字符表,將其按代碼值大小升序排序,顯示排序前后字符表,顯完,提示OK字符。 (2)程序算法 氣泡排序是一種常用的排序方法,它的規(guī)則是:表中相鄰兩元素一比較,并把大值元素向下交換,直至表尾(大值元素落底),此時(shí),稱為一次冒泡(程序中一次大循環(huán))。以后重復(fù)冒泡排序,直至最小元素冒到表頂為止。若在一次冒泡排序中沒有出現(xiàn)兩元素交換(設(shè)標(biāo)志為0),則停止排序。,35 39 47 32 49 30,35 39 47 32 49 30,35 39 47 32 49 30,35 39 32 47 49 30,35 39 32 47 49 30,第1趟: 6個(gè)數(shù),將最大的數(shù)降到底部,6
31、個(gè)數(shù)需比較5次 COUNT=5 , BX=0 (第一趟) , DL=5 (外循環(huán)) CX=5-0 (內(nèi)循環(huán)) 修改 :BX=BX+1=1 DL=DL-1=4 (剩4趟),35 39 32 47 30 49,35 39 32 47 30 49,35 39 32 47 30 49,35 32 39 47 30 49,35 32 39 47 30 49,35 32 39 30 47 49,第2趟:將最大的數(shù)降到底部,5個(gè)數(shù)需比較4次 COUNT=4, BX=1 (第2趟) , DL=4 (外) CX=5, CX=CX-BX=5-1=4 (內(nèi)循環(huán)次數(shù)) 修改:BX=BX+1=1+1=2 DL=DL-1=3 (剩3趟),35 32 39 30 47 49,32 35 39 30 47 49,32 35 39 30 47 49,32 35 30 39 47 49,第3趟:將最大的數(shù)降到底部,4個(gè)數(shù)需比較3次 COUNT=3, BX=2 (第3趟) , DL=3 (外) CX=5, CX=CX-BX=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 顱內(nèi)壓力監(jiān)測(cè)芯片行業(yè)技術(shù)發(fā)展策略研究
- 紡織企業(yè)生產(chǎn)設(shè)備安全操作規(guī)程
- 綠色環(huán)保貓砂行業(yè)深度解析
- 2025至2030中國自行車部件行業(yè)發(fā)展趨勢(shì)分析與未來投資戰(zhàn)略咨詢研究報(bào)告
- 文化遺產(chǎn)保護(hù)工程質(zhì)量保證措施
- 健康養(yǎng)生:中草藥產(chǎn)品開發(fā)策略
- 2025至2030中國膳食纖維糖果行業(yè)市場(chǎng)發(fā)展分析及商業(yè)模式與投融資報(bào)告
- 2025至2030中國腦膜炎奈瑟菌感染藥物行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 2025至2030中國能源和公用事業(yè)分析行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 2025至2030中國胃癌藥物行業(yè)發(fā)展趨勢(shì)分析與未來投資戰(zhàn)略咨詢研究報(bào)告
- 婚前協(xié)議(保護(hù)女方利益)
- 奉賢區(qū)教育系統(tǒng)師德師風(fēng)建設(shè)學(xué)習(xí)測(cè)試附有答案
- 西方經(jīng)濟(jì)學(xué)(第二版)完整整套課件(馬工程)
- 扶貧農(nóng)產(chǎn)品購銷合同協(xié)議(農(nóng)產(chǎn)品購銷合同模板)
- 汽車維修高級(jí)工考試試題及參考答案
- 檢驗(yàn)科安全管理制度匯總
- GB/T 5782-2016六角頭螺栓
- GB/T 23445-2009聚合物水泥防水涂料
- GB/T 13451.2-1992著色顏料相對(duì)著色力和白色顏料相對(duì)散射力的測(cè)定光度計(jì)法
- GB/T 11264-2012熱軋輕軌
- 山東省中小學(xué)校檔案管理暫行辦法
評(píng)論
0/150
提交評(píng)論