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

正文內(nèi)容

第三節(jié)80868088匯編語言-文庫吧

2025-07-17 12:53 本頁面


【正文】 ) ‘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)上頁 ‘H’ ‘E’ ‘L’ S1 大 小 18 ( 2)數(shù)據(jù)別名定義 格式: [變量或標(biāo)號 ] LABEL 類型 操作: 給變量 /標(biāo)號重新定義別名和改變 別名屬性 說明: 不分配新的存儲空間。 示例 1: BARRAY LABEL BYTE ARRAY DW 100 DUP(0) …… ADD AL,BARRAY[49] ;第 50個字節(jié), 字節(jié)相加 …… ADD AX,ARRAY[98] ;第 50個字, 字相加 示例 2: SUBPF LABEL FAR SUBP: SUB AX,AX …… JMP SUBP ; 段內(nèi) …… FARPRO PROC FAR …… JMP SUBPF ; 段間 19 段定義偽指令 ( 1)段定義偽指令 格式: 段名 SEGMENT[定位類型 ][組合類型 ][類別名 ] ? ;語句體 段名 ENDS 操作: 定義邏輯段 說明: 代碼段的語句體為指令和偽指令,其它段為偽指令。 : 指定當(dāng)前段起始地址的性質(zhì) ① PARA 起始地址的低 4位為 0H,即 16的倍數(shù); ② PAGE 起始地址的低 8位為 00H,即 256的倍數(shù) ③ BYTE 可從任意地址開始 ④ WORD 當(dāng)前段的起始地址為偶地址 默認項是 PARA 回 21頁 20 : 指明程序連接時,段的合并方法 ① PRIVATE 不與其他模塊中任何段連接或重疊 ② PUBLIC 不同模塊中 PUBLIC類型的同名段 連接 在一起,形成一個單一的段 (段長為 ∑ ) ③ COMMON 不同模塊中 COMMON類型的同名段 重疊 在一起,共享相同的存儲區(qū) (共享存儲區(qū)長度為 max) ④ STACK 功能同 PUBLIC,但新段為堆棧段 (段長為 ∑) 默認項是 PRIVATE : 指明程序連接時,段間次序的確定方法 LINK程序?qū)⒏髂K相同‘類別名’的各段依次序連續(xù)存放在內(nèi)存中,但各段相互獨立。 缺省項為空 段合并的優(yōu)先級>確定段間次序的優(yōu)先級。 回下頁 21 段定義偽指令示例: D_SEG SEGMENT ‘DATA39。 NUM1 DB 10 DUP(?) D_SEG ENDS S_SEG SEGMENT PARA ‘STACK39。 DW 100 DUP(?) S_SEG ENDS E_SEG SEGMENT PARA ‘DATA39。 STRING DB 39。HELLO39。 E_SEG ENDS …… ;連接 (LINK)時, D_SEG段與 E_SEG段是連續(xù)的 轉(zhuǎn) 19頁 轉(zhuǎn)上頁 22 ( 2)指定段寄存器偽指令 格式: ASSUME 段寄存器 :段名 {[,段寄存器 :段名 ]} 操作: 明確段和段寄存器的關(guān)系 說明: ①代碼段 中 必須至少有一個 ASSUME語句, ASSUME可以出現(xiàn)在源程序中的任何地方; ②對同一段寄存器重復(fù)指定時最后一個有效。 必須指定 CS,最后一次指定必須在開始執(zhí)行段中,且段名為開始執(zhí)行段的段名。 CS=END指令中標(biāo)號 /過程名對應(yīng)的段 IP=END指令中標(biāo)號 /過程名在段內(nèi)的偏移地址 轉(zhuǎn)下頁 23 、 ES的指定 對 DS、 ES的 指定無效 (文件加載后自動指向程序前綴 ),需要在程序中顯式賦值 (指定 )。 程序前綴 (PSP)— 用戶程序與命令行間的接口,占 256字節(jié) 程序前綴區(qū) 程序區(qū) EXE文件加載后結(jié)構(gòu) CS IP=? DS、 ES SS SP=? 思考: 文件加載時,如何得到 CS、 SS值? 回上頁 回 25頁 回 39頁 文件頭 裝入模塊 EXE文件結(jié)構(gòu) 格式化區(qū) 重定位表 程序 代碼 重定位表 — 代碼長度, 各段 偏移地址、長度等 100H 24 對 DS、 ES賦值 (指定 )示例: D_SEG SEGMENT ;數(shù)據(jù)段 X DW ?, 4000H, 100 DUP(?) D_SEG ENDS E_SEG SEGMENT ;附加段 STRING DB 39。EXAMPLE39。 E_SEG ENDS C_SEG SEGMENT PARA 39。CODE39。 ASSUME CS:C_SEG,DS:D_SEG,ES:E_SEG START: MOV AX, D_SEG MOV DS, AX ;數(shù)據(jù)段基址 → DS MOV AX, E_SEG MOV ES, AX ;附加段基址 → ES 轉(zhuǎn) MOV對段 REG限制 25 自動指定 — 當(dāng)有組合類型為 STACK的段時, SS自動指向該段; 此時用 ASSUME指定 SS時, SP=段長;否則 SP=0000H 自動指定示例: S_SEG SEGMENT PARA STACK DW 100 DUP(?) S_SEG ENDS 思考: 若有多個 STACK屬性的堆棧段,結(jié)果如何? 缺省指定 — 當(dāng)無組合類型為 STACK的段時,無論是否用 ASSUME設(shè)定, SS自動指向程序區(qū)開始 (SP=0000H); 思考: 若未定義堆棧時,使用堆棧的結(jié)果? 轉(zhuǎn) 23頁 回 28頁 26 顯式指定 — 使用 MOV指令,使 SS及 SP指向目的處。 用指令賦值示例: S_SEG SEGMENT DW 100 DUP(?) ST LABLE WORD S_SEG ENDS C_SEG SEGMENT PARA 39。CODE39。 ASSUME CS:C_SEG,SS:S_SEG,DS:NOTHING,ES:NOTHING START: …… MOV AX, S_SEG ;填入段基址 MOV SS, AX LEA SP, ST ;填入棧頂指針 C_SEG ENDS END START 思考: 若有 STACK屬性的堆棧段,又用指令賦值后結(jié)果如何? 27 程序開始和結(jié)束偽指令 ( 1)模塊命名偽指令 格式 1: NAME [模塊名 ] 操作 1: 給源程序進行模塊命名 說明 1: 若模塊名缺省,則自動用程序名代替。 格式 2: TITLE 標(biāo)題名 操作 2: 給源程序設(shè)置標(biāo)題 (模塊命名 ) 說明 2: 模塊名為標(biāo)題名的前 6個字符。 示例: NAME MM1 或 TITLE ABCDEFGH ;模塊名為 ABCDEF 28 ( 2)程序開始和結(jié)束偽指令 格式: END [地址標(biāo)號 ] 操作: 表明該模塊到此結(jié)束,和整個應(yīng)用程序從地址標(biāo)號處開始執(zhí)行 說明: ①應(yīng)用程序只能有一個主模塊 (地址標(biāo)號不缺省 ); ②匯編程序不處理源程序中 END后的信息。 應(yīng)用程序與源程序文件: 應(yīng)用程序可有多個源程序文件; 每個源程序文件只能為一個模塊 (在 NAME/TITLE~END間 ); 所有模塊中只能有一個主模塊 (END后地址標(biāo)號不缺省 ); 每個模塊中可有多個段; 每個段的類型通過與段寄存器對應(yīng)或段組合類型定性。 轉(zhuǎn) 25頁 29 表達式賦值偽指令 格式: 名字 EQU 表達式 名字 = 表達式 操作: 為表達式取一個名字,供以后引用 說明: ①表達式可為常數(shù)、變量 /標(biāo)號、指令助記符、字符串 ②同一源程序中,用 EQU賦值的符號 不能 再次賦值,而用 =賦值的符號名可重復(fù)賦值。 ③賦值語句 不產(chǎn)生目標(biāo)代碼,也不占有存儲單元 (匯編程序掃描時,用表達式替代符號 ),目的是方便更新和提高可讀性。 示例: CONST EQU 100*2 ;定義符號常數(shù) ADDRS EQU [BX+10] ;為地址表達式定義名字 30 地址計數(shù)器和對準(zhǔn)偽指令 ( 1)地址計數(shù)器 $ 功能: 保存當(dāng)前正在匯編的指令 (或數(shù)據(jù) )的地址 說明: $為有效地址 EA(16位 ); 可參加構(gòu)成表達式。 示例 1: ARRAY DW 1,2,$+4,3,$+5 示例 2: BUFFER DB 1,2,3,4,5 COUNT EQU $BUFFER ; COUNT的值為 BUFFER的長度 01 00 02 00 7C 00 03 00 81 00 ARRAY 0074H 0078H 007CH 31 ( 2)定位偽指令 格式: ORG 表達式 操作: 將表達式的值送入?yún)R編地址計數(shù)器 (即命令匯編程序從表達式值位置生成目標(biāo)代碼 ) 說明: 若需相對 $移動,則表達式 =$+偏移量。 示例: D_SEG SEGMENT PARA 39。DATA’ ORG 10H X DB 20H, 30H ORG $+5 Y DB 40H, 50H D_SEG ENDS 20 30 40 50 10H 17H D_SEG的 00H 32 過程定義偽指令 格式: 過程名 PROC [類型 ] ?? ;過程體語句 RET 過程名 ENDP 操作: 定義過程,供調(diào)用 說明: 可用 CALL或 END啟動過程,用 過程體中 RET結(jié)束過程調(diào)用; 類型有 NEAR和 FAR兩種 (缺省時為 NEAR),分別表示可以進行段內(nèi)和段間調(diào)用。 回 60頁 33 五、匯編語言程序返回 DOS方法 匯編語言程序結(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 回下頁 34 匯編語言程序結(jié)構(gòu)示例 2: DATA SEGMENT …… DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA MAIN PROC FAR
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1