(14)-4.2 偽指令計(jì)算機(jī)硬件技術(shù)_第1頁(yè)
(14)-4.2 偽指令計(jì)算機(jī)硬件技術(shù)_第2頁(yè)
(14)-4.2 偽指令計(jì)算機(jī)硬件技術(shù)_第3頁(yè)
(14)-4.2 偽指令計(jì)算機(jī)硬件技術(shù)_第4頁(yè)
(14)-4.2 偽指令計(jì)算機(jī)硬件技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩60頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

匯編語(yǔ)言程序設(shè)計(jì)匯編語(yǔ)言程序設(shè)計(jì)本章內(nèi)容:匯編語(yǔ)言概述;偽指令;系統(tǒng)功能調(diào)用;8086的工作時(shí)序。4.2偽指令包括如下內(nèi)容:1.段定義偽指令SEGMENT/ENDS2.位置計(jì)數(shù)器$和定位偽指令ORG3.段尋址偽指令A(yù)SSUME4.過(guò)程定義偽指令PROC/ENDP5.數(shù)據(jù)定義偽指令與存儲(chǔ)器分配6.記錄與結(jié)構(gòu)定義偽指令(RECORD、STRUC/ENDS)7.符號(hào)定義偽指令(EQU、LABEL)8.程序模塊定義偽指令(NAME/END、PUBLIC/EXTRN)4.2偽指令偽指令語(yǔ)句匯編程序并不把它們翻譯成機(jī)器代碼,只是用來(lái)指示、引導(dǎo)匯編程序在匯編時(shí)做一些操作,它本身不占用存儲(chǔ)單元指令語(yǔ)句匯編程序把它們翻譯成機(jī)器代碼,命令8086執(zhí)行對(duì)應(yīng)操作。4.2.1段定義偽指令SEGMENT/ENDS1.SEGMENT和ENDS

[段名]SEGMENT[定位方式][組合方式][類別名]語(yǔ)句1語(yǔ)句2…

[段名]ENDS定義方式4.2.1段定義偽指令SEGMENT/ENDS(1)段名段名是賦予該段的一個(gè)名稱,SEGMENT與ENDS成對(duì)出現(xiàn),且前面的段名要相同,段名的取法與文件名、標(biāo)號(hào)及變量名等相同。(2)定位方式LINK程序除完成段與段的聯(lián)合操作以外,還把聯(lián)合后得到的各個(gè)段互相銜接起來(lái),段與段的銜接方式叫做定位方式,共4種。4.2.1段定義偽指令SEGMENT/ENDS①PARA(未定義的):表示段從一個(gè)節(jié)的邊界,即用十六進(jìn)制數(shù)表示地址的最低位為0處開(kāi)始。②BYTE(字節(jié)):表示段可從任一地址開(kāi)始。③WORD(字):表示段從地址是一個(gè)最低位為0的二進(jìn)制數(shù)開(kāi)始。④PAGE(頁(yè)):表示段從一個(gè)頁(yè)的邊界,即十六進(jìn)制數(shù)表示地址的最低兩位均為0處開(kāi)始。(2)定位方式4.2.1段定義偽指令SEGMENT/ENDS定位類型起

址BYTE

XXXXXXXXXXXXXXXXXXXXBWORDXXXXXXXXXXXXXXXXXXX0BPARAXXXXXXXXXXXXXXXX0000BPAGEXXXXXXXXXXXX00000000B

X表示可取0或1(2)定位方式4.2.1段定義偽指令SEGMENT/ENDS(3)組合方式程序不同模塊中具有相同性質(zhì)的段若使用同樣的段名,則連接時(shí)就會(huì)把同名的段按照指定的方式組合起來(lái),組合方式共有6種。①NONE(缺省)方式:表示該段與其他模塊的段沒(méi)有任何關(guān)系,每段都有自己的基址。這是缺省方式。4.2.1段定義偽指令SEGMENT/ENDS(3)組合方式③STACK方式:連接時(shí)把所有STACK方式的同名段連接成一個(gè)段,運(yùn)行時(shí)就是SS的裝入值,且棧指針SP指向該段的起始地址。②PUBLIC方式:表示該段與其他模塊中說(shuō)明為PUBLIC方式的同名段互相組合成一個(gè)邏輯段,公用一個(gè)段址,運(yùn)行時(shí)裝入同一個(gè)物理段中。4.2.1段定義偽指令SEGMENT/ENDS(3)組合方式⑤MEMORY方式:表示該段應(yīng)定位在所有其他段的上面,若有多個(gè)段選用MEMORY,則除第一個(gè)之外,其余段均作為COMMON處理。④COMMON方式:表示該段與其它模塊中所有已說(shuō)明為COMMON的同名段共享相同的存儲(chǔ)區(qū)域,即具有相同的段起始地址,共享的長(zhǎng)度為模塊同名段中最大長(zhǎng)度。4.2.1段定義偽指令SEGMENT/ENDS(3)組合方式⑥AT方式:表示該段按絕對(duì)地址定位,其段地址即為其后表達(dá)式的值,位移量為0。例:有A,B;C,A,B;A,C共7個(gè)段是3個(gè)模塊中的段,用P,C,S分別代表PUBLIC,COMMON或STACK。組合成4個(gè)新段(見(jiàn)下圖),新段的長(zhǎng)度為被組合在一起的各段長(zhǎng)度之和(用PUBLIC和STACK方式時(shí)),或是各段中最長(zhǎng)段的長(zhǎng)度(COMMON方式)。4.2.1段定義偽指令SEGMENT/ENDS(3)組合方式A(P)B(C)C(S)A(P)B(C)AC(S)模塊1模塊2模塊3LINKPCSABCD連接程序的組合處理示意圖4.2.1段定義偽指令SEGMENT/ENDS(4)類別名是一個(gè)用單引號(hào)括起來(lái)的字符串,LINK程序把類別名相同的所有段放在連續(xù)的存儲(chǔ)區(qū)域內(nèi),先出現(xiàn)的在前,后出現(xiàn)的在后。例:ASEGMENT ‘FAT’ A BSEGMENT ‘BAZ’ E CSEGMENT ‘BAZ’ B DSEGMENT ‘ZOU’ C ESEGMENT ‘FAT’ D

LINK處理前LINK處理后4.2.1段定義偽指令SEGMENT/ENDS2.GROUP偽指令格式:[組名]GROUP[段名][,…]功能:用來(lái)把模塊中若干不同名的段集合成一個(gè)組,使其裝入同一個(gè)物理段中,組內(nèi)各段之間的跳轉(zhuǎn)可視為段內(nèi)跳轉(zhuǎn)。注:組名與段名是一樣的取名規(guī)則,是代表該組的段地址,格式中的段名也可用表達(dá)式SEG[變量]或SEG[標(biāo)號(hào)]。4.2.2位置計(jì)數(shù)器$和定位偽指令ORG

1.位置計(jì)數(shù)器$匯編程序?qū)iT設(shè)置了一個(gè)表示當(dāng)前位置的計(jì)數(shù)器,稱位置計(jì)數(shù)器$。正常情況下,匯編程序每掃描一個(gè)字節(jié),位置計(jì)數(shù)器的值便加1。

語(yǔ)句:TOPEQU$-STACK含義:當(dāng)前位置計(jì)數(shù)器的值$減去STACK代表的起始位置的值,然后把兩者的差值賦予符號(hào)常量TOP。語(yǔ)句:JMP$

含義:程序跳轉(zhuǎn)到本條指令執(zhí)行。4.2.2位置計(jì)數(shù)器$和定位偽指令ORG

2.ORG偽指令格式:ORG[數(shù)據(jù)表達(dá)式]功能:把位置計(jì)數(shù)器的值設(shè)置為表達(dá)式的值。ORG后面的一條指令性語(yǔ)句或數(shù)據(jù)區(qū)定義命令即從指定的位置處進(jìn)行匯編。4.2.3段尋址偽指令A(yù)SSUME格式:ASSUME[段寄存器]:[段名],[段寄存器]:[段名],…功能:用于告知匯編程序,段寄存器CS、DS、ES和SS的內(nèi)容將被設(shè)定為那些段或組的段址。4.2.3段尋址偽指令A(yù)SSUME(1)段名可以是已定義過(guò)的任何段名或組名,也可以是表達(dá)SEG[變量]或SEG[標(biāo)號(hào)],還可以是NOTHING。(2)除CS外,DS、ES、SS的設(shè)置必須通過(guò)指令性語(yǔ)句來(lái)完成。注:4.2.3段尋址偽指令A(yù)SSUMECODESEGMENTASSUMECS:CODE,DS:DATA,

SS:STACK,ES:NOTHINGMOV AX,DATAMOV DS,AX;設(shè)置DSMOV AX,STACKMOV SS,AX;設(shè)置SS

CODE ENDS例:4.2.4過(guò)程定義偽指令PROC/ENDP過(guò)程即是子程序。匯編語(yǔ)言規(guī)定必須對(duì)過(guò)程進(jìn)行定義,以確定過(guò)程的三種屬性。過(guò)程的屬性確定之后,就可對(duì)調(diào)用指令CALL進(jìn)行正確匯編,決定是產(chǎn)生近調(diào)用指令還是遠(yuǎn)調(diào)用指令。

4.2.4過(guò)程定義偽指令PROC/ENDP1.過(guò)程的三種屬性①段屬性:過(guò)程所在段的段地址。②偏移量屬性:過(guò)程所處位置的段內(nèi)偏移地址。③類型屬性(NEAR或FAR)。過(guò)程為NEAR或FAR類型。NEAR近過(guò)程。該過(guò)程與調(diào)用指令CALL處在同一個(gè)代碼段中(段名相同)。FAR遠(yuǎn)過(guò)程。該過(guò)程與調(diào)用指令CALL處在不同的代碼段中(段名不同)。

4.2.4過(guò)程定義偽指令PROC/ENDP2.過(guò)程的定義使用格式:過(guò)程名PROCNEAR/FAR

RET

過(guò)程名ENDP…4.2.4過(guò)程定義偽指令PROC/ENDP2.過(guò)程的定義功能:把具有一定功能的程序段設(shè)計(jì)成為一個(gè)過(guò)程(子程序),便于實(shí)現(xiàn)模塊化的程序設(shè)計(jì)。注:(1)CALL指令中過(guò)程名起著標(biāo)號(hào)的作用。有段屬性、偏移量屬性和類型屬性(NEAR和FAR)。(2)子程序中至少有一個(gè)RET。過(guò)程名是為該過(guò)程指定的一個(gè)名稱,與變量、標(biāo)號(hào)的定義法相同。4.2.5數(shù)據(jù)定義偽指令與存儲(chǔ)器分配1.變量的三種屬性(1)段屬性即變量所使用的段;(2)段內(nèi)偏移屬性;(3)變量的類型:字節(jié)、字、雙字等。DB—定義字節(jié)型變量,每個(gè)變量分配1個(gè)存儲(chǔ)單元DW--定義字型變量,每個(gè)變量分配2個(gè)存儲(chǔ)單元DD--定義雙字型變量,每個(gè)變量分配4個(gè)存儲(chǔ)單元任何變量均有下列三屬性。4.2.5數(shù)據(jù)定義偽指令與存儲(chǔ)器分配2.變量定義及存儲(chǔ)器申請(qǐng)偽指令DB/DW/DD功能:定義一變量,并為其分配一定數(shù)量的存儲(chǔ)單元,變量的初值由表達(dá)式的值指定。若初值可任意,則用問(wèn)號(hào)(?)表示。變量名可省。HEXDB5AH;定義字節(jié)變量VWORDDW1234H;定義字變量(1)格式1:[變量名]{DB/DW/DD}表達(dá)式4.2.5數(shù)據(jù)定義偽指令與存儲(chǔ)器分配2.變量定義及存儲(chǔ)器申請(qǐng)偽指令DB/DW/DDBUFFERDW1,0,-1;定義了三個(gè)字單元STRDB‘Program’;定義了一個(gè)字符串HEX_OFFDWHEX;定義了一個(gè)字單元,其初值為已定義變量HEX的偏移量。DVARDD12345678H;定義了一個(gè)雙字單元注:在存放字變量時(shí),低字節(jié)在前,高字節(jié)在后。注:在存放字符串時(shí),存儲(chǔ)的是字符的ASCII碼。4.2.5數(shù)據(jù)定義偽指令與存儲(chǔ)器分配2.變量定義及存儲(chǔ)器申請(qǐng)偽指令DB/DW/DDASCDB2DUP(?)功能:分配2個(gè)字節(jié)單元,初值任意BUFDW100DUP(0)功能:分配100個(gè)字單元,初值為0ZIPDB3DUP(0,2DUP(1))功能:存儲(chǔ)單元依次初始化為:0,1,1,0,1,1,0,1,1。(1)格式2:[變量名]{DB/DW/DD}DUP表達(dá)式4.2.5數(shù)據(jù)定義偽指令與存儲(chǔ)器分配2.變量的使用MOVAL,HEX;取變量HEX的內(nèi)容送AL寄存器AL。MOVASC[BX],AL;取變量ASC的偏移地址,再與BX寄存器的內(nèi)容相加,得到存儲(chǔ)器操作數(shù)的有效地址EA,再將AL寄存器的內(nèi)容送入該單元。變量經(jīng)過(guò)定義及存儲(chǔ)器申請(qǐng)之后,在程序中即可像高級(jí)語(yǔ)言一樣使用。4.2.6記錄與結(jié)構(gòu)定義偽指令(RECORDSTRUC/ENDS)

1.記錄定義偽指令RECORD記錄:能進(jìn)行位處理的8位或16位二進(jìn)制數(shù)。字段:記錄中相鄰的若干位構(gòu)成一個(gè)字段。記錄類型:說(shuō)明記錄中有哪些字段,各字段分別有多少位。(1)記錄類型的定義

記錄名RECORD字段名:寬度[=初值表達(dá)式],…4.2.6記錄與結(jié)構(gòu)定義偽指令(RECORDSTRUC/ENDS)

1.記錄定義偽指令RECORD記錄名和字段名遵循標(biāo)號(hào)的取名法則。寬度表示該字段占有的二進(jìn)制位數(shù),最多不能超過(guò)16位,初值表達(dá)式可省,表示該字段的初值。如:COLORRECORDX:3=5,Y:4=12,Z:9=2551011100011111111

151312980COLORXYZ4.2.6記錄與結(jié)構(gòu)定義偽指令(RECORDSTRUC/ENDS)

1.記錄定義偽指令RECORD注:當(dāng)定義中的字段總位數(shù)不能占滿整個(gè)字節(jié)或字時(shí),匯編程序就把所定義的字段與記錄的低位端對(duì)齊。如:COOLRECORDA:5=17,B:7=127

XXXX100011111111

151211760COOL未定義AB4.2.6記錄與結(jié)構(gòu)定義偽指令(RECORDSTRUC/ENDS)

1.記錄定義偽指令RECORD(2)記錄類型變量的定義及存儲(chǔ)器分配記錄可以用記錄名稱作為操作符。[名稱]記錄名稱<表達(dá)式,…>表達(dá)式DUP(<表達(dá)式,…>)一般格式:4.2.6記錄與結(jié)構(gòu)定義偽指令(RECORDSTRUC/ENDS)

1.記錄定義偽指令RECORD如:COLOR1COLOR<,15,9>定義了一個(gè)記錄型變量,其字段X、Y和Z的初值分別為5(缺省值),15和9,即COLOR1=1011,1110,0000,1001B4.2.6記錄與結(jié)構(gòu)定義偽指令(RECORDSTRUC/ENDS)

1.記錄定義偽指令RECORD(3)記錄的使用定義了記錄型變量之后,在程序中可像一個(gè)字節(jié)或字型變量來(lái)使用。如:MOVDX,COLOR1指令執(zhí)行后,DX=1011,1110,0000,1001B=BE09H4.2.6記錄與結(jié)構(gòu)定義偽指令(RECORDSTRUC/ENDS)

2.結(jié)構(gòu)定義偽指令STRUC/END偽指令(1)結(jié)構(gòu)類型的定義結(jié)構(gòu)是一種復(fù)雜的數(shù)據(jù)類型。結(jié)構(gòu)體中包含若干個(gè)字段,其數(shù)據(jù)類型一般為基本的數(shù)據(jù)類型。使用格式:結(jié)構(gòu)名稱

STRUC

[字段名稱]{DB/DW/DD}結(jié)構(gòu)名稱

ENDS表達(dá)式,…表達(dá)式DUP(表達(dá)式,…)……4.2.6記錄與結(jié)構(gòu)定義偽指令(RECORDSTRUC/ENDS)

2.結(jié)構(gòu)定義偽指令STRUC/END偽指令COURSESTRUC

NODD?CNAMEDB'Assembler’SCOREDW0COURSEENDS定義了結(jié)構(gòu)名為COURSE的結(jié)構(gòu),該結(jié)構(gòu)包含三個(gè)成員變量,結(jié)構(gòu)體長(zhǎng)度為15(=4+9+2)個(gè)字節(jié)。4.2.6記錄與結(jié)構(gòu)定義偽指令(RECORDSTRUC/ENDS)

2.結(jié)構(gòu)定義偽指令STRUC/END偽指令(2)結(jié)構(gòu)類型變量的定義及存儲(chǔ)器分配格式:[變量名]結(jié)構(gòu)名<[字段值表]>如COURSE1COURSE<>定義一個(gè)結(jié)構(gòu)變量COURSE1,其初值為缺省。定義了結(jié)構(gòu)型變量之后,在程序中即可使用。格式:結(jié)構(gòu)變量名.字段名如:MOVAX,COURSE1.SCORE

(3)結(jié)構(gòu)的使用4.2.7符號(hào)定義偽指令(EQU、LABEL)1.EQU偽指令格式:符號(hào)名EQU數(shù)值表達(dá)式功能:為常量、變量、表達(dá)式或其他符號(hào)定義一個(gè)名字,但不申請(qǐng)分配內(nèi)存。如:THREEEQU3

TOPEQU$-STACK4.2.7符號(hào)定義偽指令(EQU、LABEL)1.EQU偽指令注:使用EQU可使程序簡(jiǎn)單明了和便于修改?!?”偽操作與EQU相似,其區(qū)別是前者可重復(fù)定義而后者不能。EQU可用PURGE解除。4.2.7符號(hào)定義偽指令(EQU、LABEL)2.LABEL偽指令格式:變量名/標(biāo)號(hào)LABEL[類型]功能:為當(dāng)前存儲(chǔ)單元定義一個(gè)指定類型的變量名或標(biāo)號(hào),其類型為BYTE、WORD、DWORD、結(jié)構(gòu)名、記錄名、NEAR和FAR。4.2.7符號(hào)定義偽指令(EQU、LABEL)2.LABEL偽指令如定義不同類型的數(shù)組:BYTE_ARRAYLABELBYTE;定義字節(jié)型數(shù)組標(biāo)號(hào)WORD_ARRAYDW50DUP(?);定義字型數(shù)組程序中的用法:MOVAL,BYTE_ARRAY[2];將2號(hào)字節(jié)單元內(nèi)容送ALMOVAX,WORD_ARRAY[0];將0號(hào)字單元內(nèi)容送AX4.2.7符號(hào)定義偽指令(EQU、LABEL)2.LABEL偽指令又如:TRANS_NLABELNEAR

TRANSPROCFAR這樣TRANS不僅適合遠(yuǎn)程調(diào)用和轉(zhuǎn)移也可用新名TRANS_N適合近程調(diào)用和轉(zhuǎn)移

4.2.8程序模塊定義偽指令(NAME/END、PUBLIC/EXTRN)匯編語(yǔ)言程序可劃分為許多模塊,對(duì)每個(gè)模塊獨(dú)立地進(jìn)行匯編及調(diào)試(見(jiàn)右圖),一般從低層到高層逐步進(jìn)行。主模塊EXTRNPUBLICPUBLICPUBLIC一級(jí)子模塊1EXTRN一級(jí)子模塊2EXTRN一級(jí)子模塊mEXTRN…PUBLIC二級(jí)子模塊1PUBLIC二級(jí)子模塊2PUBLICPUBLIC二級(jí)子模塊n-1二級(jí)子模塊n…匯編語(yǔ)言程序的模塊結(jié)構(gòu)4.2.8程序模塊定義偽指令(NAME/END、PUBLIC/EXTRN)1.NAME和END偽指令格式:NAME模塊名

END標(biāo)號(hào)功能:定義一個(gè)模塊,作為一個(gè)獨(dú)立的匯編單位,NAME缺省時(shí)模塊若使用了TITLE語(yǔ)句,則TITLE語(yǔ)句中前6個(gè)字符為模塊名,否則源文件名將作為模塊名。注:一個(gè)模塊是一個(gè)獨(dú)立的匯編單位,匯編處理只進(jìn)行到模塊結(jié)束語(yǔ)句END為止。

…4.2.8程序模塊定義偽指令(NAME/END、PUBLIC/EXTRN)2.PUBLIC偽指令格式:PUBLIC[符號(hào)表]功能:用來(lái)說(shuō)明該模塊中被定義的那些常量、變量和標(biāo)號(hào)(含過(guò)程名)可以被其他模塊所引用。如:PUBLICABC,BCD,CDE注:符號(hào)必須用“,”分開(kāi),且均在本模塊中定義過(guò)。4.2.8程序模塊定義偽指令(NAME/END、PUBLIC/EXTRN)3.EXTRN偽指令格式:EXTRN[符號(hào):類型,…]功能:指出本模塊中需要引用但卻在其他模塊中定義并說(shuō)明為PUBLIC屬性的符號(hào)(含常量,變量,標(biāo)號(hào)和過(guò)程)。被引用符號(hào)的類型說(shuō)明:BYTE、WORD、DWORD、NEAR、FAR、ABS(符號(hào)常量)。如:EXTRNABC:WORD,BCD:ABS,CDE:NEAR4.3匯編語(yǔ)言屬性操作符包括如下內(nèi)容:1.分析操作符(SEG、OFFSET、TYPE、LENGTH、SIZE)2.屬性修改操作符(PTR、THIS、SHORT)4.3.1分析操作符(SEG、OFFSET、TYPE、LENGTH、SIZE)

1.分析操作符(數(shù)值返回操作符)返回的是變量或標(biāo)號(hào)的段地址,偏移地址及類型的屬性值。格式:分析運(yùn)算符變量或標(biāo)號(hào)其運(yùn)算的結(jié)果為一常數(shù)4.3.1分析操作符(SEG、OFFSET、TYPE、LENGTH、SIZE)

1.分析操作符(數(shù)值返回操作符)(1)SEG——取段址算符功能:分離出該變量或標(biāo)號(hào)的段址如:MOVAX,SEGBUF(2)OFFSET——取偏移地址算符功能:分離出該變量或標(biāo)號(hào)的偏移地址如:MOVSI,OFFSETBUF4.3.1分析操作符(SEG、OFFSET、TYPE、LENGTH、SIZE)

1.分析操作符(數(shù)值返回操作符)(3)TYPE——取類型算符功能:分離出該變量或標(biāo)號(hào)的類型的字節(jié)數(shù)。變量類型為BYTE、WORD和DWORD時(shí),返回的值分別為1、2和4;標(biāo)號(hào)類型為NEAR或FAR時(shí),則返回-1或-2。(4)LENGTH——取變量所含存儲(chǔ)單元的個(gè)數(shù)功能:分離出該變量所含存儲(chǔ)單元的個(gè)數(shù)。4.3.1分析操作符(SEG、OFFSET、TYPE、LENGTH、SIZE)

1.分析操作符(數(shù)值返回操作符)注意:在定義該變量時(shí),數(shù)據(jù)定義偽指令后面的第一個(gè)表達(dá)式的形式為“nDUP(表達(dá)式)”時(shí),取值為n,否則為1。如:BUF1DB100DUP(0)

BUF2DW10,5DUP(2)

BUF3DD5DUP(1,2DUP(0))則LENGTHBUF1=100,LENGTHBUF2=1

LENGTHBUF3=5。4.3.1分析操作符(SEG、OFFSET、TYPE、LENGTH、SIZE)

1.分析操作符(數(shù)值返回操作符)(5)SIZE——取變量所含存儲(chǔ)區(qū)的總字節(jié)數(shù)。功能:SIZE=LNGTH*TYPE

SIZEBUF1=100(因?yàn)門YPEBUF1=1)

SIZEBUF2=2(因?yàn)門YPEBUF2=2)

SIZEBUF3=20(因?yàn)門YPEBUF3=4)4.3.2屬性修改操作符(PTR、THIS、SHORT)1.PTR操作符格式:類型PTR表達(dá)式類型:

變量的類型有:BYTE、WORD和DWORD;

標(biāo)號(hào)的類型有:NEAR和FAR;

結(jié)構(gòu)名稱表達(dá)式:是變量、標(biāo)號(hào)或數(shù)值PTR操作符用于暫時(shí)修改變量或標(biāo)號(hào)的原有屬性。4.3.2屬性修改操作符(PTR、THIS、SHORT)1.PTR操作符功能:PTR把它左邊的屬性指派給它右邊的變量、標(biāo)號(hào)或數(shù)值,使之產(chǎn)生一個(gè)新的存儲(chǔ)器地址操作數(shù)。新存儲(chǔ)器操作數(shù)的段地址和段內(nèi)偏移量與PTR運(yùn)算符右邊的操作數(shù)的對(duì)應(yīng)量相同。

PTR給已分配的存儲(chǔ)器一個(gè)另外的定義但并不重新分配存儲(chǔ)器。如:(1)INCBYTEPTR[BX]

(2)ADDDX,WORDPTRFOOB[20]4.3.2屬性修改操作符(PTR、THIS、SHORT)2.SHORT操作

SHORT用于條件轉(zhuǎn)移、轉(zhuǎn)移和調(diào)用指令中,指出其轉(zhuǎn)移的相對(duì)位移量不超過(guò)一個(gè)字節(jié)所能表達(dá)的范圍。4.3.2屬性修改操作符(PTR、THIS、SHORT)3.THIS操作符THIS操作符與PTR操作符有類似的功能,但新的屬性放在THIS的右邊。格式:THIS類型/距離其中類型是BYTE、WORD和DWORD,距離是

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論