匯編語言3偽指令.ppt
《匯編語言3偽指令.ppt》由會員分享,可在線閱讀,更多相關(guān)《匯編語言3偽指令.ppt(51頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1,第3章匯編語言程序結(jié)構(gòu),一、匯編語言源程序的基本結(jié)構(gòu)二、匯編語言源程序中的語句三、常量、變量、標(biāo)號與表達(dá)式四、偽指令五、操作符六、匯編語言上機(jī)過程,教學(xué)重點(diǎn):①指令語句格式和偽指令語句格式;②匯編語言程序格式;③匯編語言的上機(jī)過程教學(xué)難點(diǎn):①偽指令的應(yīng)用;②運(yùn)算符、操作符的應(yīng)用;③偽指令存儲器分配技術(shù),2,DATASEGMENTSTRDB0DH,0AH,’Howareyou!$DATAENDSSTACKSEGMENTSTACKDB100DUP(0)STACKENDSCODESEGMENTASSUMEDS:DATA,CS:CODE,SS:STACKBEGIN:MOVAX,DATAMOVDS,AXLEADX,STRMOVAH,9INT21HMOVAH,4CHINT21HCODEENDSENDBEGIN,匯編語言的一個(gè)實(shí)例P81,,,,,3,一、匯編語言源程序的基本結(jié)構(gòu),完整的匯編語言源程序由段(代碼段、數(shù)據(jù)段、附加段或堆棧段)組成;一個(gè)匯編語言源程序必須包含一個(gè)代碼段,并指示程序執(zhí)行的起始點(diǎn),一個(gè)程序只有一個(gè)起始點(diǎn)。數(shù)據(jù)段、堆棧段和附加段視情況而定。每個(gè)段由若干語句行組成。語句行是匯編的編程基礎(chǔ)。所有的指令必須位于某一個(gè)代碼段內(nèi),偽指令可根據(jù)需要位于任一段內(nèi)。段以“SEGMENT”開始,以“ENDS”結(jié)束。段由用戶定義。,4,二、匯編語言源程序中的語句,1、語句的分類2、語句的格式,5,1、匯編源程序中語句的分類,指令性語句(指令/硬指令)指示性語句(偽指令)宏指令(第5章),使CPU產(chǎn)生動(dòng)作、并在程序執(zhí)行時(shí)才處理的語句,就是第3章學(xué)習(xí)的處理器指令。,不使CPU產(chǎn)生動(dòng)作、在程序執(zhí)行前由匯編程序處理的說明性語句,例如,數(shù)據(jù)說明、變量定義等等。,6,2、匯編源程序中語句的格式,指令的格式:[標(biāo)號:]操作碼操作數(shù)[;注釋]偽指令的格式:[名字]偽指令操作數(shù)[;注釋],共同點(diǎn):每一語句行都由4部分組成,各部分之間至少要用一個(gè)空格作為間隔。,不同點(diǎn):在形式上:帶不帶冒號,是否可轉(zhuǎn)向它。在本質(zhì)上:匯編時(shí)能否形成對應(yīng)的機(jī)器碼。,,,,,,,,,7,1、常量,1)數(shù)值常量2)字符常量3)符號常量,三、常量、變量、標(biāo)號與表達(dá)式(續(xù)),數(shù)值常量,8,字符串常量是用單引號或雙引號引起來的一個(gè)或多個(gè)字符。字符串常量是以各字符的ASCⅡ碼表示的。如‘A’用41H表示,字符串‘A1B2’用41H,31H,42H,32H表示。,字符串形式的常量,對經(jīng)常使用的數(shù)值常量可以先為它定義一個(gè)名字,然后在語句中用名字來表示該常量。符號常量需要用等價(jià)偽指令EQU和等號偽指令“=”來定義。,符號常量,三、常量、變量、標(biāo)號與表達(dá)式(續(xù)),9,變量:變量是一個(gè)存放數(shù)據(jù)的存儲單元的名字,用變量名來表示,變量名由用戶自定義。變量實(shí)際上表示數(shù)據(jù)初值表首元素的地址;用這個(gè)變量名表示,常稱為符號地址,在程序中作為存儲器操作數(shù)來使用。如例子中BLOCK、BUFF。一般在數(shù)據(jù)段中定義。由于匯編語言中存儲單元是分段使用的,所以變量具有三種屬性:①段值(SEGMENT)—變量定義所在段的段地址。②偏移量(OFFSET)—變量所指的單元地址與段起始地址之間的位移量。③類型(TYPE)—有字節(jié)(byte)、字(word)和雙字(doubleword)等。,三、常量、變量、標(biāo)號與表達(dá)式(續(xù)),提示:每一個(gè)變量定義后都具有此三種屬性,設(shè)置變量名是為了方便存取它指示的存儲單元。,10,標(biāo)號是一條指令語句的符號地址。在匯編源程序中,只有在需要轉(zhuǎn)向一條指令語句時(shí),才為該指令語句設(shè)置標(biāo)號,以便在轉(zhuǎn)移類指令(含子程序調(diào)用指令)中直接引用這個(gè)標(biāo)號。因此,標(biāo)號可作為轉(zhuǎn)移類指令的操作數(shù),即轉(zhuǎn)移地址。標(biāo)號也有三種屬性:①段值:所在段的段地址,總是在CS段寄存器中;②偏移量:與變量相同,所在段的段內(nèi)偏移地址;③類型:分NEAR和FAR兩種。其中:NEAR—表示標(biāo)號所在語句與轉(zhuǎn)移指令或調(diào)用指令在同一碼段內(nèi),只需改變IP即可。FAR—標(biāo)號所在語句與轉(zhuǎn)移指令或調(diào)用指令不在同一碼段內(nèi)。若沒有對類型進(jìn)行說明,默認(rèn)為NEAR。,三、常量、變量、標(biāo)號與表達(dá)式(續(xù)),11,,例:測試為0或1,若要檢測AL中的最低位是否為1,若為1則轉(zhuǎn)移。testal,01h;測試AL的最低位D0jnzthere;標(biāo)志ZF=0,即D0=1;則程序轉(zhuǎn)移到there...;否則ZF=1,即D0=0,順序執(zhí)行there:...,TEST,12,表達(dá)式是由運(yùn)算符(操作符)將常數(shù)、寄存器、標(biāo)號、變量組合起來的式子,分?jǐn)?shù)值表達(dá)式和地址表達(dá)式兩種。匯編時(shí)按一定的優(yōu)先規(guī)則對表達(dá)式進(jìn)行計(jì)算。,表達(dá)式,(1)算術(shù)運(yùn)算符,(2)邏輯運(yùn)算符,(3)關(guān)系運(yùn)算符,三、常量、變量、標(biāo)號與表達(dá)式(續(xù)),下面介紹三種運(yùn)算符:,數(shù)值表達(dá)式,算術(shù)表達(dá)式(利用算術(shù)運(yùn)算符),邏輯表達(dá)式(利用邏輯運(yùn)算符),關(guān)系表達(dá)式(利用關(guān)系運(yùn)算符),13,有+、-、*、/以及MOD(取余),其中MOD表示除法運(yùn)算后得到的余數(shù)。例:19/7的商是2,19MOD7則為5(余數(shù))算術(shù)運(yùn)算符可以用于數(shù)值表達(dá)式,例:MOVAL,2*7,(1)算術(shù)運(yùn)算符,14,邏輯運(yùn)算符有AND、OR、XOR和NOT,它們只能用于數(shù)值表達(dá)式中。例:MOVCL,36HAND0FH經(jīng)匯編后:MOVCL,06H這些邏輯運(yùn)算符也是8086的指令助記符,會不會造成混亂呢?不會的,邏輯運(yùn)算符在匯編時(shí)進(jìn)行,而指令助記符在指令執(zhí)行時(shí)進(jìn)行。例:ANDDH,PORTAND0FEH后一個(gè)邏輯運(yùn)算符AND在匯編時(shí)進(jìn)行,若PORT為81H,則匯編后表達(dá)式算出為80H。執(zhí)行前一個(gè)指令助記符AND時(shí),將DH與80H相與,結(jié)果在DH中。,(2)邏輯運(yùn)算符,ANDDH,PORTAND0FEH,15,【例】用邏輯運(yùn)算符進(jìn)行運(yùn)算。MOVAL,34HAND0FH;04H→ALMOVBL,05HOR30H;35H→BLMOVCX,NOT00FFH;0FF00H→CXMOVDX,789AHXOR000FH;7895H→DXMOVAL,0FHSHL4;AL=11110000BMOVBL,0FHSHR4;BL=00000000B,16,共有6個(gè),分別是:EQ(相等),NE(不等),LT(小于),GT(大于),LE(小于或等于),GE(大于或等于)關(guān)系運(yùn)算符的兩個(gè)操作數(shù)必須都是數(shù)字或者是同一段內(nèi)的兩個(gè)存儲器地址。結(jié)果始終是一個(gè)數(shù)字值。若:關(guān)系為真,結(jié)果為0FFFFH關(guān)系為假,結(jié)果為0例:MOVBX,PORTGE5若PORT的值大于等于5,則匯編后為:MOVBX,0FFFFH若PORT的值小于5,則匯編后為:MOVBX,0,(3)關(guān)系運(yùn)算符,提示:不單獨(dú)使用關(guān)系運(yùn)算符,通常將關(guān)系運(yùn)算符與邏輯運(yùn)算符組合起來使用。,17,運(yùn)算符的優(yōu)先級,1()[]LENGTHOFSIZEOFWIDTHMASK2PTROFFSETSEGTPYETHIS:3HIGELOW4*/MODSHLSHR5+-6EQNEGTLTGELE7NOT8AND9ORXOR10SHORT,18,地址表達(dá)式在后面變量中講,19,四、偽指令,段定義偽指令SEGMENT/ENDS符號定義偽指令變量定義偽指令LABEL類型定義偽指令假定偽指令A(yù)SSUME置匯編地址計(jì)數(shù)器偽指令ORG源程序結(jié)束偽指令,20,1段定義偽指令,因8086/8088CPU的存儲器是分段的,這就需要有段定義語句。1、段定義偽指令的格式如下:段名SEGMENT[定位類型][組合類型][’類別’]┇段名ENDS解釋:SEGMENT和ENDS這兩個(gè)偽指令總是成對出現(xiàn),二者前面的段名一致,由用戶起。二者之間的刪節(jié)部分,一般是符號、變量定義等偽指令。對于數(shù)據(jù)段、附加段及堆棧段同數(shù)據(jù)段,對于代碼段一般則是指令。,21,2、符號定義偽指令,等值偽指令EQU格式:符號名EQU表達(dá)式例:AEQU100BEQUA說明:EQU偽指令在未解除前,不能重新定義。等號(=)偽指令與EQU類似,但允許重新定義例:┇EMP=7;值為7┇EMP=8;值為8,已用EQU定義的符號,可用PURGE解除,再重新定義。格式:PURGE符號1,符號2,...,符號n例:AEQU100PURGEAAEQU200,22,3、變量定義偽指令,變量是內(nèi)存中數(shù)據(jù)區(qū)的首地址名字,故定義變量的偽指令又可叫數(shù)據(jù)定義偽指令。這類偽指令格式為:變量名偽指令助記符操作數(shù);注釋,(1)變量名用符號地址表示;(2)偽指令助記符有如下幾種:DB(字節(jié))、DW(字)、DD(雙字)、DF、DQ、DT(3)操作數(shù)可以是常數(shù)或表達(dá)式;(4)注釋用來說明偽指令的功能,它亦可有可無。,解釋:,,,,,23,表達(dá)式:表達(dá)式項(xiàng)是給變量或指定存儲單元賦予初值,它有以下幾種形式:(1)數(shù)值表達(dá)式(2)字符串表達(dá)式(3)地址表達(dá)式(只適用DW和DD兩個(gè)偽指令)(4)?表達(dá)式(5)帶DUP的表達(dá)式,24,匯編后如下圖所示:,A,C,B,10,5,10H,100H,100,-4,60,0FFFBH,,,,,,,,,DatasegmentADB10,5,10HBDW100H,100,-4CDD2*30,0FFFBHDataends,數(shù)值表達(dá)式舉例,25,操作數(shù)可以是字符串STRDB‘HELLO’匯編后如下:,STR,‘H’,‘E’,‘L’,‘L’,‘O’,注意下面的不同:ADB’AB’ADW’AB’41‘A’42‘B’42‘B’41‘A’,,,,,,說明:當(dāng)DB定義的數(shù)據(jù)是字符串時(shí),按字符在字符串中出現(xiàn)的先后次序分配內(nèi)存單元。,字符串表達(dá)式舉例,26,例3:XDW1,2,$+4,3,4,$+4Lendb$-x設(shè)X的偏移地址為0000H,則匯編后如下圖所示:,x,0000H,,,,,,,,,,0004H,,000AH,,P72例4-2,len,,0004H+4,000AH+4,0012,地址表達(dá)式舉例,27,算術(shù)運(yùn)算符也可以用于地址表達(dá)式,地址表達(dá)式的基本形式為:變量名或標(biāo)號名+數(shù)值表達(dá)式或變量名或標(biāo)號名-數(shù)值表達(dá)式說明:對地址運(yùn)算的結(jié)果應(yīng)有明確的物理意義,例兩個(gè)地址的乘或除無意義。例:LEASI,SUM+3;SUM為一變量movax,BUF1-BUF2表示變量SUM的地址加上3得到的和作為新存儲單元的地址。,地址表達(dá)式,28,說明:(1)變量和標(biāo)號是最簡單的地址表達(dá)式;(2)地址表達(dá)式所表示的偏移地址是在匯編時(shí)由MASM計(jì)算的;(3)兩個(gè)地址表達(dá)式的差表示兩個(gè)地址之間的距離(即字節(jié)數(shù))而且兩個(gè)地址必須在同一個(gè)段內(nèi);(4)兩個(gè)地址表達(dá)式相加是沒有意義的,地址表達(dá)式(續(xù)),29,$:可用在硬指令中,也可用在偽指令中。在偽指令中使用$,表示的是地址計(jì)數(shù)器的當(dāng)前值;,地址計(jì)數(shù)器$,匯編程序的地址計(jì)數(shù)器:每進(jìn)入一個(gè)新段,地址計(jì)數(shù)器清零;每分配一個(gè)單元,地址計(jì)數(shù)器自動(dòng)加1,指向下一個(gè)待分配的單元;$代表當(dāng)前值。,在硬指令中使用$,它表示本條指令的第一個(gè)字節(jié)的地址(本條指令的首地址)。如:JNE$+6$+6表示的轉(zhuǎn)向地址是JNE指令的首地址加上6。它必須是另一條指令的首地址。,30,例3:XDW1,2,$+4,3,4,$+4Lendb$-x設(shè)X的偏移地址為0000H,則匯編后如下圖所示:,x,0000H,,,,,,,,,,0004H,,000AH,,P72例4-2,len,,0004H+4,000AH+4,0012H,地址表達(dá)式舉例,31,操作數(shù)?用來保留內(nèi)存空間,但不存入數(shù)據(jù),即初始值未定義。例3:ADB0,1,?,?,?LDW?,54,?匯編后如下圖示:,A,L,0,1,?,?,?,?,?,54,,,,,,?表達(dá)式舉例,32,操作數(shù)還可以用復(fù)制操作符DUP來縮寫,如ABCDB0,1,?,?,?亦可寫成:ABCDB0,1,3DUP(?)又如:bufDB2DUP(0,1,2,?)與bufDB0,1,2,?,0,1,2,?等價(jià),DUP表達(dá)式舉例,33,,4.LABEL類型定義偽指令格式:名字LABEL類型功能:定義與原有變量類型不同的新變量或?yàn)橹噶钫Z句定義有指定類型的標(biāo)號。通常與數(shù)據(jù)定義偽指令連用,其功能類似語句“變量名或標(biāo)號EQUTHIS類型”。解釋:其中的名字可以是變量或標(biāo)號,當(dāng)為變量時(shí),類型是BYTE、WORD、DWORD等,當(dāng)為標(biāo)號時(shí),類型是NEAR或FAR。舉例:datasegmentbalabelbytewadw100dup(?)dataends上述指令定義了地址相同、類型不同的兩個(gè)變量:字節(jié)類型變量ba與字類型變量wa。Movwa,AXMovba,AL,34,,5.指定段寄存器偽指令A(yù)SSUME格式:ASSUME段寄存器名:段名[,段寄存器名:段名……]功能:建立段寄存器與段之間的關(guān)系。即指出某個(gè)段的段地址在哪個(gè)段寄存器中。如:ASSUMECS:CODE,DS:DATA注意:ASSUME偽指令并不能為段寄存器賦值。說明:ASSUME偽指令只是告知匯編程序有關(guān)段寄存器與段的關(guān)系,并沒有給段寄存器賦予實(shí)際的初值。需通過以下指令:MOVAX,DATAMOVDS,AXMOVES,AX實(shí)現(xiàn)將段基址裝入段寄存器。說明:代碼段不需要用戶裝,由初始化程序裝入。,35,6.置匯編地址計(jì)數(shù)器偽指令ORG,格式:ORG數(shù)值表達(dá)式功能:將數(shù)值表達(dá)式的值賦給匯編地址計(jì)數(shù)器。偽指令ORG規(guī)定了段內(nèi)的起始偏移地址,表達(dá)式的值即為段內(nèi)的起始偏移地址,從此地址起連續(xù)存放程序或數(shù)據(jù)。數(shù)值表達(dá)式的值須為0~65535之間的非負(fù)整數(shù)。【例】給匯編地址計(jì)數(shù)器賦值。DATASEGMENTORG10;置$值為10VAR1DW100H,200HORG$+5;置$的值為14+5,即為19VAR2DB‘ABC’DATAENDS,解釋P72例8,36,7、源程序結(jié)束偽指令,格式:END[地址]功能:該語句標(biāo)志整個(gè)程序的結(jié)束,是源程序的最后一條語句。說明:可選的地址指出程序執(zhí)行的起始點(diǎn),通常是標(biāo)號或過程名。,37,SEG操作符OFFSET操作符TYPE操作符PTR屬性操作符THIS類型操作符,五、操作符,38,(1)SEG操作符格式:SEG變量或標(biāo)號功能:分離出其后變量或標(biāo)號所在段的段首址。例如:MOVAX,SEGARRMOVDS,AX(2)OFFSET操作符格式:OFFSET變量或標(biāo)號功能:分離出其后變量或標(biāo)號的偏移地址。例如:MOVBX,OFFSETBUF,提示:ARR與BUF都為某一數(shù)據(jù)段當(dāng)中定義的變量,39,(3)TYPE操作符格式:TYPE變量或標(biāo)號功能:分離出其后變量或標(biāo)號的類型。如果是變量,將返回該變量的類型對應(yīng)字節(jié)數(shù);如果是標(biāo)號,則返回代表標(biāo)號類型的數(shù)值。它們之間的關(guān)系見表所示。,40,對于A、B、C三變量:Sega=segb=segcOffseta=?Offsetb=?Offsetc=?Typea=?Typeb=?Typec=?,舉例:,DATASEGMENTADB‘ABCDEF’BDW10DUP(1,2DUP(2))CDB3,20DUP(0)DATAENDS,41,Sega=segb=segc=0c52HOffseta=0000HOffsetb=0006HOffsetc=0042HTypea=1Typea=2Typea=1,舉例:,DATASEGMENTADB‘ABCDEF’BDW10DUP(1,2DUP(2))CDB3,20DUP(0)DATAENDS,42,功能:用來對存儲單元規(guī)定類型,通常和偽指令BYTE,WORD等連起來使用。例:MOVBYTEPTR[DI],0MOVWORDPTR[DI],0而MOV[DI],0;類型不定PTR也可用來對已經(jīng)規(guī)定了類型進(jìn)行更改例:STRIDW?;定義為字類型MOVSTRI,AX;是合法的MOVAL,STRI;是非法的只能用:MOVAL,BYTEPTRSTRI,(4)屬性(類型)操作符PTR,說明:PTR只是臨時(shí)改變變量的類型屬性,原類型屬性不變,43,功能:返回一個(gè)指定類型的內(nèi)存操作數(shù)或標(biāo)號,相應(yīng)的地址為地址計(jì)數(shù)器的當(dāng)前值。通常,THIS操作符與EQU配合使用。功能同“LABEL”格式:名字EQUTHIS類型理解:給當(dāng)前偏移地址指定一種類型屬性,同時(shí)定義了一個(gè)名字例如:bufdw2055h;設(shè)$=0008Hbvarequthisbyte;不占存儲空間wvardw10dup(0);wvar仍然指向0008H解釋:當(dāng)前偏移地址為0008H,第二條語句“THIS”給它指定了一個(gè)類型屬性:BYTE,并借助EQU為它定義了名字:bvar。第三條語句使0008H單元具有了另一個(gè)名字和另一種屬性。對0008H單元,兩個(gè)名字、兩種屬性都可用。解釋:,(5)this類型操作符,注意:※要借助EQU偽指令?!c下一條偽指令合用。,44,DATASEGMENTSTRDB0DH,0AH,’Howareyou!$‘┇DATAENDSSTACKSEGMENTSTACKDB100DUP(0)STACKENDSCODESEGMENTASSUMEDS:DATA,CS:CODE,SS:STACK,ES:DATABEGIN:MOVAX,DATAMOVDS,AXMOVES,AX┇MOVAH,4CHINT21HCODEENDSENDBEGIN,匯編語言源程序結(jié)構(gòu),45,,過程1:源程序的編輯,源程序文件要以.ASM為擴(kuò)展名源程序文件的形成(編輯)可以通過任何一個(gè)文本編輯器實(shí)現(xiàn):DOS中的全屏幕文本編輯器EDIT其他程序開發(fā)工具中的編輯環(huán)境Visualc++等EDITlt1.asm,,六、匯編語言程序的上機(jī)過程,46,,過程2:源程序的匯編,匯編是將源程序翻譯成由機(jī)器代碼組成的目標(biāo)模塊文件的過程,由匯編程序MASM完成。MASMlt1.asm如果源程序中沒有語法錯(cuò)誤,MASM將自動(dòng)生成一個(gè)目標(biāo)模塊文件(lt1.obj);否則MASM將給出相應(yīng)的錯(cuò)誤信息這時(shí)應(yīng)根據(jù)錯(cuò)誤信息,重新編輯修改源程序后,再進(jìn)行匯編。,47,過程3:目標(biāo)模塊的連接,連接程序能把一個(gè)或多個(gè)目標(biāo)文件和庫文件合成一個(gè)可執(zhí)行程序:LINKlt1.obj如果沒有嚴(yán)重錯(cuò)誤,LINK將生成一個(gè)可執(zhí)行文件(lt1.exe);否則將提示相應(yīng)的錯(cuò)誤信息這時(shí)需要根據(jù)錯(cuò)誤信息重新修改源程序后再匯編、鏈接,直到生成可執(zhí)行文件,48,過程4:可執(zhí)行程序的調(diào)試,經(jīng)匯編、連接生成的可執(zhí)行程序在操作系統(tǒng)下只要輸入文件名就可以運(yùn)行:lt1操作系統(tǒng)裝載該文件進(jìn)入內(nèi)存,并開始運(yùn)行如果出現(xiàn)運(yùn)行錯(cuò)誤,可以從源程序開始排錯(cuò),也可以利用調(diào)試程序幫助發(fā)現(xiàn)錯(cuò)誤采用DEBUG.EXE調(diào)試程序:DEBUGlt1.exe,注:如果結(jié)果在寄存器或存儲器中,則只能在DEBUG下查看結(jié)果,49,,六、匯編語言程序的上機(jī)過程,,源程序:文件名.asm,,目標(biāo)模塊:文件名.obj,,可執(zhí)行文件:文件名.exe,,,,錯(cuò)誤,50,總結(jié),一、匯編語言源程序的基本框架二、匯編語言源程序中的語句三、變量、標(biāo)號的三種屬性四、偽指令五、操作符六、匯編語言上機(jī)過程,51,作業(yè),- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 匯編語言 指令
鏈接地址:http://m.italysoccerbets.com/p-3353528.html