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

正文內(nèi)容

[工學(xué)]第4章匯編語(yǔ)言程序格式(2)(編輯修改稿)

2024-11-15 00:22 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 .STARTUP 和 .EXIT。 ?.STARTUP——在代碼段的開(kāi)始,用于自動(dòng)初始化寄存器 DS、SS和 SP; ?.EXIT——用于結(jié)束程序的運(yùn)行。 .model small .data …… .code .startup …… .exit 0 end .model small .data …… .code start: mov ax, @data mov ds, ax …… mov ax, 4c00h int 21h end start 龍巖學(xué)院 計(jì)算機(jī)科學(xué)系 鄭金彬 《 IBMPC匯編語(yǔ)言程序設(shè)計(jì) 》 數(shù)據(jù)定義及存儲(chǔ)器分配偽操作: [變量名 ] 助記符 操作數(shù) [ , 操作數(shù) , … ] [ 。 注釋 ] 1. 變量名必須是一個(gè)合法的標(biāo)識(shí)符,它可以寫,也可以不寫; 2. 助記符用于確定內(nèi)存單元的數(shù)據(jù)類型,如: DB(字節(jié))、 DW (字) 、 DD (雙字) 、 DF( 6字節(jié))、DQ(四字)、 DT( 10字節(jié))。 1. 操作數(shù)是定義內(nèi)存單元時(shí)的初值表達(dá)式, 一個(gè)定義語(yǔ)句可以有多個(gè)初值表達(dá)式,各表達(dá)式之間必須用逗號(hào) ‘ , ’ 分開(kāi);如果某個(gè)存儲(chǔ)單元沒(méi)有初值表達(dá)式,則必須用一個(gè)問(wèn)號(hào) ‘ ? ’來(lái)表示; 2. 在定義語(yǔ)句的后面可以書寫注釋內(nèi)容,也可以不寫。 龍巖學(xué)院 計(jì)算機(jī)科學(xué)系 鄭金彬 《 IBMPC匯編語(yǔ)言程序設(shè)計(jì) 》 DATA_BYTE DB 10,4,10H,? DATA_WORD DW 100,100H,5,? 例: 1 注:“?”表示保留存儲(chǔ)空間但不存入數(shù)據(jù) 0AH 04H 10H 64H 00H 00H 01H FBH FFH DATA_BYTE ? DATA_WORD ? 龍巖學(xué)院 計(jì)算機(jī)科學(xué)系 鄭金彬 《 IBMPC匯編語(yǔ)言程序設(shè)計(jì) 》 【 例 】 DATA1 DB 10, 4, 10H DATA2 DW 100, 100H, 5 DATA3 DD 3*20, 0FFFDH 0 4 1 0 6 4 0 0 0 0 0 1 F B F F 3 C 0 0 0 0 0 0 F D F F 0 0 0 0 0 A DATA1 DATA2 DATA3 10d 4 10h 龍巖學(xué)院 計(jì)算機(jī)科學(xué)系 鄭金彬 《 IBMPC匯編語(yǔ)言程序設(shè)計(jì) 》 ARRAY DB ‘HELLO’ DB ‘AB’ DW ‘AB’ 48H 45H 4CH 4CH 4FH 41H 42H 42H 41H ARRAY ? DW1 DD 12345678H DW2 DD 0abcd1243H 78H 56H 34H 12H 43H 12H CDH ABH DW1 ? DW2 ? 例 例: 3 例 2圖 例 3圖 龍巖學(xué)院 計(jì)算機(jī)科學(xué)系 鄭金彬 《 IBMPC匯編語(yǔ)言程序設(shè)計(jì) 》 ◆ 重復(fù)說(shuō)明符 DUP 從前面的內(nèi)容里,我們知道了定義少量?jī)?nèi)存變量的定義形式,但如果在程序中 要說(shuō)明 50個(gè)、 100個(gè)、 200個(gè)甚至更多的、同類型的內(nèi)存變量時(shí) ,若采用前面所學(xué)的方法,對(duì)它們一一加以說(shuō)明顯然是不可行的。為此,匯編語(yǔ)言提供了變量的重復(fù)說(shuō)明符 DUP,其說(shuō)明的一般形式如下: repeat_count DUP (表達(dá)式 , 表達(dá)式 , … , 表達(dá)式 ) 解釋: repeat_count是重復(fù)次數(shù), (表達(dá)式 , 表達(dá)式 , … , 表達(dá)式 )是被重復(fù)的部分, “ 表達(dá)式 ” 可以是存儲(chǔ)單元的初值,也可以是含義另一個(gè) DUP的式子。如果在表達(dá)式的括號(hào)中有多個(gè)表達(dá)式,那么,它們之間要用逗號(hào) ‘ ,’分開(kāi)。 龍巖學(xué)院 計(jì)算機(jī)科學(xué)系 鄭金彬 《 IBMPC匯編語(yǔ)言程序設(shè)計(jì) 》 0 1 0 2 0 0 0 1 0 2 0 0 BUF1→ BUF2→ … 100個(gè)字節(jié) 例: BUF1 DB 2 DUP( 0, 1, 2, ? ) BUF2 DB 100 DUP( ? ) 龍巖學(xué)院 計(jì)算機(jī)科學(xué)系 鄭金彬 《 IBMPC匯編語(yǔ)言程序設(shè)計(jì) 》 例如: 1. BUFFER DB 100 DUP(?) 2. STRING DB 120 DUP(39。ABCDE39。), 0 3. DB 2 DUP (0,2 DUP(1,2),3) 4. DATA1 DW 50 DUP(10H, 20 DUP(1,2,3), 20H) 5. POINTS DD 12, 30 DUP(0) 從上面的例子可看出:用 DUP說(shuō)明內(nèi)存變量相當(dāng)于在高級(jí)語(yǔ)言中定義數(shù)組。 buffer ? 100字節(jié) 畫出存儲(chǔ)單元的分配圖,計(jì)算分配字節(jié)數(shù) 龍巖學(xué)院 計(jì)算機(jī)科學(xué)系 鄭金彬 《 IBMPC匯編語(yǔ)言程序設(shè)計(jì) 》 ◆ 強(qiáng)制屬性操作符 PTR 在程序中,我們有時(shí)需要對(duì)同一個(gè)存儲(chǔ)單元以不同的屬性來(lái)訪問(wèn),或?qū)σ恍┎淮_定的存儲(chǔ)屬性需要顯式指定等,這時(shí),我們就需要強(qiáng)制屬性操作符 PTR。該操作符的作用有點(diǎn)象 C語(yǔ)言中的類型強(qiáng)制方法。 對(duì)于指令: MOV [BX], 1H,其目標(biāo)操作數(shù) [BX]是寄存器間接尋址方式,它指向一個(gè)存儲(chǔ)單元。在作傳送操作時(shí),是把 “ 1H”擴(kuò)展成 8位作字節(jié)傳送,還是擴(kuò)展成 16位作字傳送呢?這就使該指令具有二義性,因?yàn)?[BX]指向的存儲(chǔ)單元可以字節(jié)或字的首地址。含有該指令的程序在匯編時(shí),可能會(huì)產(chǎn)生警告或出錯(cuò)信息。 龍巖學(xué)院 計(jì)算機(jī)科學(xué)系 鄭金彬 《 IBMPC匯編語(yǔ)言程序設(shè)計(jì) 》 為了使指令中存儲(chǔ)單元操作數(shù)具有明確的屬性,我們可以使用強(qiáng)制屬性操作符 PTR。其一般格式為: 數(shù)據(jù)類型 PTR 地址表達(dá)式 其中:數(shù)據(jù)類型是前面所學(xué)的各種數(shù)據(jù)類型,常用的數(shù)據(jù)類型有: BYTE、 WORD、 DWORD、 NEAR和 FAR等。 為了明確指令中存儲(chǔ)單元的屬性,可把指令 “ MOV [BX], 1H”可改寫成: MOV byte ptr [BX], 1H 或 MOV word ptr [BX], 1H 龍巖學(xué)院 計(jì)算機(jī)科學(xué)系 鄭金彬 《 IBMPC匯編語(yǔ)言程序設(shè)計(jì) 》 在 指令中用操作符 PTR強(qiáng)制后,不管其后的地址表達(dá)式原數(shù)據(jù)類型是什么,在本指令中就以 PTR前面的類型為準(zhǔn)。 該強(qiáng)制屬性只在本指令有效,是一種臨時(shí)性的屬性,它不會(huì)改變?cè)瓋?nèi)存單元的定義屬性。 例如: W1 DW 1234H, 5678H B1 DB 2 DB 5 D1 DD 23456789H … MOV AX, word ptr b1 。把 B1開(kāi)始的二個(gè)字節(jié)拼接成一個(gè)字,執(zhí)行后, (AX)=0502H MOV BH, byte ptr w1 。把字 W1的低字節(jié)傳送給 BH,執(zhí)行后, (BH)=34H MOV CH, byte ptr w1+1。把字 W1的高字節(jié)傳送給 CH,執(zhí)行后, (CH)=12H MOV word ptr d1, 12H 。把雙字 D1的低字修改成 0012H,執(zhí)行后, (D1)=23450012H 上面指令中的強(qiáng)制屬性是 臨時(shí)屬性 ,它不能改變這些變量在定義時(shí)的永久屬性。 龍巖學(xué)院 計(jì)算機(jī)科學(xué)系 鄭金彬 《 IBMPC匯編語(yǔ)言程序設(shè)計(jì) 》 OPER1 DB ?, ? OPER2 DW ?, ? …… MOV OPER1, 0 。字節(jié)指令 MOV OPER2, 0 。字指令 OPER1 DB 1, 2 OPER2 DW 1234H, 5678H …… MOV AX, OPER1+1 MOV AL, OPER2 類型不匹配 MOV AX, WORD PTR OPER1+1 MOV AL, BYTE PTR OPER2 (AX)=3402H (AL)=34H 例 龍巖學(xué)院 計(jì)算機(jī)科學(xué)系 鄭金彬 《 IBMPC匯編語(yǔ)言程序設(shè)計(jì) 》 BYTE_ARRAY LABEL BYTE WORD_ARRAY DW 50 DUP (?) tos LABEL WORD L LABEL NEAR ◆ LABEL 偽操作: BYTE_ARRAY ? WORD_ARRAY ? tos ? 50字 0064H 同一個(gè)變量可以具有不同的類型屬性,除了可以用 PTR來(lái)定義外,還可以用 LABEL偽操作來(lái)定義 符號(hào)名 LABEL 類型 其中:常用的類型有 BYTE、 WORD、 DWORD、 NEAR和 FAR等 龍巖學(xué)院 計(jì)算機(jī)科學(xué)系 鄭金彬 《 IBMPC匯編語(yǔ)言程序設(shè)計(jì) 》 表達(dá)式賦值偽操作: 等價(jià)語(yǔ)句的一般使用格式如下: 符號(hào)名 EQU 表達(dá)式 作用是左邊的符號(hào)名代表右邊的表達(dá)式 。 注意: 等價(jià)語(yǔ)句不會(huì)給符號(hào)名分配存儲(chǔ)空間 , 符號(hào)名不能與其它符號(hào)同名 , 也不能被重新定義 例 ALPHA EQU 9 BETA EQU ALPHA+18 BB EQU [BP+8] 龍巖學(xué)院 計(jì)算機(jī)科學(xué)系 鄭金彬 《 IBMPC匯編語(yǔ)言程序設(shè)計(jì) 》 匯編語(yǔ)言提供了用等號(hào) “ =” 來(lái)定義符號(hào)常數(shù)的方法,即可用符號(hào)名代表一個(gè)常數(shù)。其一般格式如下: 符號(hào)名=數(shù)值表達(dá)式 數(shù)值表達(dá)式在匯編時(shí)應(yīng)該可以計(jì)算出數(shù)值,它不能含有向前引用的符號(hào)名稱。 用等號(hào)語(yǔ)句定義的符號(hào)可以被重復(fù)定義 。 例如: ABC = 10 + 200 * 5 。ABC的值為 1010 ABC1 = 5 * ABC + 21 。ABC1的值為 5071 COUNT = 1 。COUNT的值為 1 COUNT = 2*COUNT + 1 。COUNT的值為 3 …… EMP = 7 …… EMP = EMP+1 …… 龍巖學(xué)院 計(jì)算機(jī)科學(xué)系 鄭金彬 《 IBMPC匯編語(yǔ)言程序設(shè)計(jì) 》 地址計(jì)數(shù)器與對(duì)準(zhǔn)偽操作: 1. 地址計(jì)數(shù)器 $ : 保存當(dāng)前正在匯編的指令的地址 ORG $+8 。 跳過(guò) 8個(gè)字節(jié)的存儲(chǔ)區(qū) JNE $+6 。 轉(zhuǎn)向地址是 JNE指令 的首址 +6 JMP $+2 。轉(zhuǎn)向下一條指令 $ 用在偽操作的參數(shù)字段: 表示地址計(jì)數(shù)器的當(dāng)前值 A
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1