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

正文內(nèi)容

第三節(jié)80868088匯編語(yǔ)言-wenkub

2022-08-29 12:53:35 本頁(yè)面
 

【正文】 段定義偽指令示例: D_SEG SEGMENT ‘DATA39。 回下頁(yè) 17 示例: X1 DB 40H ;為 X1分配 1個(gè)字節(jié),初值 40H X2 DW 10*10 ;為 X2分配 2個(gè)字節(jié),初值 100(0064H) X3 DB 10,20,30 ;為 X3分配 3個(gè)字節(jié),初值為 10,20,30 Y1 DB 20H,? ;為 Y1分配 2個(gè)字節(jié),第 2個(gè)字節(jié)無(wú)初值 S1 DB ?HEL? ; S1占 3個(gè)字節(jié),值為 ASCII碼 S2 DB ?H?, ?E?, ?L? ; S2與 S1相同 S3 DW ?HE? ;非字符串定義 VAR1 DW 2 DUP(2,4),1476H VAR2 DB 2 DUP(?,2 DUP(?A?,?B?) ) ‘E’ ‘H’ S3 ? ‘A’ ‘B’ ‘A’ ‘B’ ? ‘A’ ‘B’ ‘A’ ‘B’ VAR2 02H 00H 04H 00H 02H 00H 04H 00H 76H 14H VAR1 轉(zhuǎn)上頁(yè) ‘H’ ‘E’ ‘L’ S1 大 小 18 ( 2)數(shù)據(jù)別名定義 格式: [變量或標(biāo)號(hào) ] LABEL 類(lèi)型 操作: 給變量 /標(biāo)號(hào)重新定義別名和改變 別名屬性 說(shuō)明: 不分配新的存儲(chǔ)空間。 PTR示例: DATA1 DB 10H, 20H, 30H DATA2 DW 0123H ?? MOV AX, WORD PTR DATA1 ; (AX)←2022H MOV BL, BYTE PTR DATA2 ; (BL)←23H MOV BYTE PTR[SI], 60H ;字節(jié)傳送 SUB WORD PTR[BX], 36H ;字?jǐn)?shù)據(jù)相減 JMP FAR PTR SUB_P1 ;段間直接轉(zhuǎn)移 JMP WORD PTR[BX] ;段內(nèi)間接轉(zhuǎn)移 回下頁(yè) 轉(zhuǎn)轉(zhuǎn)移地址尋址 12 SHORT格式: 指令助記符 SHORT 標(biāo)號(hào) SHORT功能: 轉(zhuǎn)移地址屬性為短,用 8位位移量表示 SHORT說(shuō)明: 指令助記符可為 JMP/Jx/LOOP/CALL等; 可缺省 SHORT,匯編語(yǔ)言根據(jù)標(biāo)號(hào)與 IP的偏移值自動(dòng)選擇SHORT或 NEAR PTR。 應(yīng)用: 作立即數(shù)、位移量、賦初值用。 轉(zhuǎn)上頁(yè) 思考: 標(biāo)號(hào)與變量的主要區(qū)別? 指令中 變量的數(shù)據(jù)類(lèi)型如何表示? 操作項(xiàng) 組成: 可為指令、偽指令或宏指令的助記符。 ( 1)標(biāo)號(hào) 組成: ①語(yǔ)句標(biāo)號(hào) 由名字 +冒號(hào) (“:”)組成; ②過(guò)程名、段名等 — 只由名字組成。 數(shù)據(jù)段 堆棧段 附加段 代碼段 END 標(biāo)號(hào) 主模塊 (1個(gè) ) 數(shù)據(jù)段 附加段 代碼段 END 從模塊 (n個(gè) ) 堆棧段 2 匯編語(yǔ)言程序舉例: DATA SEGMENT BUF1 DB 34H BUF2 DB 2AH SUM DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX MOV AL, BUF1 ADD AL, BUF2 MOV SUM, AL MOV AH, 4CH INT 21H CODE ENDS END START 3 二、匯編語(yǔ)言程序開(kāi)發(fā)過(guò)程 源程序 .asm 目標(biāo)程序 .obj 可執(zhí)行程序 .exe 運(yùn)行結(jié)果 編輯 文本編輯器 匯編 連接 link ① DOS下執(zhí)行 ② debug 執(zhí)行 masm 非編譯 可執(zhí)行程序 . 轉(zhuǎn)換 exe2bin 4 三、匯編語(yǔ)言語(yǔ)句格式 匯編語(yǔ)言程序由若干語(yǔ)句組成。 匯編語(yǔ)言語(yǔ)句類(lèi)型: 指令語(yǔ)句 — 完成操作功能,能 編排 (比翻譯簡(jiǎn)單 )成機(jī)器語(yǔ)言代碼 (即 80x86指令系統(tǒng)的指令 ); 偽指令語(yǔ)句 — 為 匯編程序 在編排源程序時(shí)提供有關(guān)信息 ; 宏指令語(yǔ)句 — 分為宏定義和宏調(diào)用語(yǔ)句,編排時(shí)用宏定義代替宏調(diào)用語(yǔ)句。 屬性: 段 屬 性 — 標(biāo)號(hào) (定義時(shí) )所在段的起始地址; 偏移屬性 — 標(biāo)號(hào)與所在段起始地址間字節(jié)數(shù); 類(lèi)型屬性 — 表明引用它時(shí)的特性, 段內(nèi)引用為 NEAR,段間引用為 FAR。 說(shuō)明: 指令助記符可帶指令前綴。 轉(zhuǎn) 5頁(yè) 8 ( 2)數(shù)字表達(dá)式 為常數(shù)、寄存器名、標(biāo)號(hào) /變量與運(yùn)算符的組合。 類(lèi)型 格式 功能 段操作符 段寄存器 :地址表達(dá)式 表示變量或表達(dá)式的段屬性 例: MOV AX, ES:[BX+SI] THIS THIS 類(lèi)型 段地址和偏移地址與下一單元相同,類(lèi)型為新類(lèi)型 例: NAM_TYP EQU THIS BYTE WORD_TAB DW 50 DUP(?) HIGH、 LOW HIGH 數(shù)或表達(dá)式 返回?cái)?shù)或表達(dá)式的字節(jié)信息 例: MOV AH, HIGH X 轉(zhuǎn)上頁(yè) 13 ( 5)各運(yùn)算符的優(yōu)先級(jí) 優(yōu)先級(jí) 運(yùn)算符 類(lèi)別 1 ()、 []、 LENGTH、 SIZE 數(shù)值回送運(yùn)算符 2 OFFSET、 SEG、 TYPE、 PTR、THIS、段操作符 屬性和數(shù)值回送運(yùn)算符 3 HIGH、 LOW 屬性運(yùn)算符 4 *、 /、 MOD 算術(shù)運(yùn)算符 5 +、 算術(shù)運(yùn)算符 6 EQ、 NE、 LT、 GT、 LE、 GE 關(guān)系運(yùn)算符 7 NOT 邏輯運(yùn)算符 8 AND 邏輯運(yùn)算符 9 OR、 XOR 邏輯運(yùn)算符 10 SHORT 屬性運(yùn)算符 注釋項(xiàng) 以 “ 。 示例 1: BARRAY LABEL BYTE ARRAY DW 100 DUP(0) …… ADD AL,BARRAY[49] ;第 50個(gè)字節(jié), 字節(jié)相加 …… ADD AX,ARRAY[98] ;第 50個(gè)字, 字相加 示例 2: SUBPF LABEL FAR SUBP: SUB AX,AX …… JMP SUBP ; 段內(nèi) …… FARPRO PROC FAR …… JMP SUBPF ; 段間 19 段定義偽指令 ( 1)段定義偽指令 格式: 段名 SEGMENT[定位類(lèi)型 ][組合類(lèi)型 ][類(lèi)別名 ] ? ;語(yǔ)句體 段名 ENDS 操作: 定義邏輯段 說(shuō)明: 代碼段的語(yǔ)句體為指令和偽指令,其它段為偽指令。 NUM1 DB 10 DUP(?) D_SEG ENDS S_SEG SEGMENT PARA ‘STACK39。 E_SEG ENDS …… ;連接 (LINK)時(shí), D_SEG段與 E_SEG段是連續(xù)的 轉(zhuǎn) 19頁(yè) 轉(zhuǎn)上頁(yè) 22 ( 2)指定段寄存器偽指令 格式: ASSUME 段寄存器 :段名 {[,段寄存器 :段名 ]} 操作: 明確段和段寄存器的關(guān)系 說(shuō)明: ①代碼段 中 必須至少有一個(gè) ASSUME語(yǔ)句, ASSUME可以出現(xiàn)在源程序中的任何地方; ②對(duì)同一段寄存器重復(fù)指定時(shí)最后一個(gè)有效。EXAMPLE39。 用指令賦值示例: S_SEG SEGMENT DW 100 DUP(?) ST LABLE WORD S_SEG ENDS C_SEG SEGMENT PARA 39。 示例: NAME MM1 或 TITLE ABCDEFGH ;模塊名為 ABCDEF 28 ( 2)程序開(kāi)始和結(jié)束偽指令 格式: END [地址標(biāo)號(hào) ] 操作: 表明該模塊到此結(jié)束,和整個(gè)應(yīng)用程序從地址標(biāo)號(hào)處開(kāi)始執(zhí)行 說(shuō)明: ①應(yīng)用程序只能有一個(gè)主模塊 (地址標(biāo)號(hào)不缺省 ); ②匯編程序不處理源程序中 END后的信息。 示例: CONST EQU 100*2 ;定義符號(hào)常數(shù) ADDRS EQU [BX+10] ;為地址表達(dá)式定義名字 30 地址計(jì)數(shù)器和對(duì)準(zhǔn)偽指令 ( 1)地址計(jì)數(shù)器 $ 功能: 保存當(dāng)前正在匯編的指令 (或數(shù)據(jù) )的地址 說(shuō)明: $為有效地址 EA(16位 ); 可參加構(gòu)成表達(dá)式。 回 60頁(yè) 33 五、匯編語(yǔ)言程序返回 DOS方法 匯編語(yǔ)言程序結(jié)構(gòu)示例 1: DATA SEGMENT …… DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX …… MOV AH, 4CH INT 21H CODE ENDS END START 回下頁(yè) 34 匯編語(yǔ)言程序結(jié)構(gòu)示例 2: DATA SEGMENT …… DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA MAIN PROC FAR PUSH DS MOV AX, 0 PUSH AX MOV AX, DATA MOV DS, AX …… RET MAIN ENDP CODE ENDS END MAIN 轉(zhuǎn)上頁(yè) 35 使用 DOS功能調(diào)用返回 ODS 格式: MOV AH, 4CH INT 21H 功能: 帶返回碼返回 DOS,返回碼可由程序設(shè)置 例: 將某 字節(jié)數(shù)據(jù)塊中負(fù)元素個(gè)數(shù)存入變量 CNT。 RET指令: 自動(dòng)彈出棧頂?shù)?4個(gè)字節(jié),并送 IP和 CS。 COM文件生成: 用 exe2bin將 EXE文件轉(zhuǎn)換成 COM文件。 如是段內(nèi)分支,每個(gè)地址占兩個(gè)單元 (IP的值 ) 如是段間分支,每個(gè)地址占 4個(gè)單元 (CS:IP的值 ) TABLE SUB3 IP IP IP SUB2 SUB1 TABLE IP CS IP CS SUB2 SUB1 段內(nèi)分支 段間分支 47 例 3: 根據(jù) AL中為 1的位 (從低位到高位 )把程序轉(zhuǎn)移到 8個(gè)不同的程序 (段內(nèi) )分支中去 (跳轉(zhuǎn)表其始位置在變量 TABLE中 )。 …… MOV CX,0 ;初始化 MOV AX,0 MOV BX,1 ROTATE: ADD AX,BX ;累加 INC BX INC CX ;計(jì)數(shù)器加 1 CMP CX,50 ;與已知的循環(huán)次數(shù)比較 JNZ ROTATE
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1