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

正文內(nèi)容

數(shù)值轉(zhuǎn)換中應(yīng)用數(shù)據(jù)輸入輸出時的轉(zhuǎn)換2、串操作中應(yīng)用-資料下載頁

2025-07-19 03:21本頁面
  

【正文】 的區(qū)別宏指令與子程序的區(qū)別 子程序 宏指令 程序執(zhí)行期間 在匯編期間展開 由主程序調(diào)用 它只占有自身它只占有自身 與調(diào)用次數(shù)有關(guān),每調(diào)用一次與調(diào)用次數(shù)有關(guān),每調(diào)用一次 大小的空間大小的空間 就把宏定義體展開一次就把宏定義體展開一次 執(zhí)行時需增加時間 直接執(zhí)行宏體 上的額外開銷50現(xiàn)代微機原理與接口技術(shù)現(xiàn)代微機原理與接口技術(shù)現(xiàn)代微機原理與接口技術(shù)現(xiàn)代微機原理與接口技術(shù)宏定義的進一步討論:宏定義的進一步討論:宏定義可以無變元、宏定義可以無變元變元可以是操作碼、變元可以是操作碼宏定義:宏定義: FOO MACRO P1, P2, P3 MOV AX, P1 P2 P3 ENDM 宏調(diào)用:宏調(diào)用: FOO WORD_VAR, INC, AX 宏展開:宏展開: + MOV AX, WORD_VAR + INC AX52現(xiàn)代微機原理與接口技術(shù)現(xiàn)代微機原理與接口技術(shù)變元可以是操作碼的一部分,必須用、變元可以是操作碼的一部分,必須用 amp。作為分隔符作為分隔符宏定義:宏定義: LEAP MACRO COND, LAB Jamp。COND LAB ENDM 宏調(diào)用:宏調(diào)用: LEAP C, THERE宏展開:宏展開: + JC THERE53現(xiàn)代微機原理與接口技術(shù)現(xiàn)代微機原理與接口技術(shù)變元是、變元是 ASCII串串宏定義:宏定義: MSGGEN MACRO LAB, NUM, XYZ LABamp。NUM DB ‘HELLO MR.amp。XYZ’ ENDM宏調(diào)用:宏調(diào)用: MSGGEN MSG, 1, TAYLOR宏展開:宏展開: + MSG1 DB ‘HELLO ’54現(xiàn)代微機原理與接口技術(shù)現(xiàn)代微機原理與接口技術(shù)宏定義體內(nèi)允許使用標(biāo)號、宏定義體內(nèi)允許使用標(biāo)號 , 此時,須使用此時,須使用 LOCAL偽操作偽操作 宏定義:宏定義: ABSOL MACRO OPER LOCAL NEXT CMP OPER, 0 JGE NEXT NEG OPER NEXT: ENDM宏調(diào)用:宏調(diào)用: ABSOL VAR …… ABSOL BX 宏展開:宏展開: + CMP VAR, 0 + JGE ??0000 + NEG VAR + ??0000: …… + CMP BX, 0 + JGE ??0001 + NEG BX + ??0001: 55現(xiàn)代微機原理與接口技術(shù)現(xiàn)代微機原理與接口技術(shù)宏定義中可以使用宏調(diào)用,(必須先定義后調(diào)用)、宏定義中可以使用宏調(diào)用,(必須先定義后調(diào)用)宏定義:宏定義: DIF MACRO X, Y MOV AX, X SUB AX, Y ENDM DIFSQR MACRO OPR1, OPR2, RESULT PUSH DX PUSH AX DIF OPR1, OPR2 IMUL AX MOV RESULT, AX POP AX POP DX ENDM 56現(xiàn)代微機原理與接口技術(shù)現(xiàn)代微機原理與接口技術(shù)在在 VC++中中 嵌入?yún)R編語言指令嵌入?yún)R編語言指令本節(jié)類容適合在本節(jié)類容適合在 Visual C++格式格式 1:: _asm { 匯編語言指令匯編語言指令 }格式格式 2:: _asm 匯編語言指令匯編語言指令說明 :1)格式 1中 { }內(nèi)可以是 1條也可以是多條匯編指令 2) 格式 2只能跟一條匯編語言指令 3)有些版本的 VC需要使用 __asm( 兩個下劃線)57現(xiàn)代微機原理與接口技術(shù)現(xiàn)代微機原理與接口技術(shù)嵌入?yún)R編示例 1_asm{ mov eax, 01h mov dx, 0xD007 out dx, eax}嵌入?yún)R編示例 2_asm mov eax, 01h_asm mov dx, 0xD007_asm out dx, eax58現(xiàn)代微機原理與接口技術(shù)現(xiàn)代微機原理與接口技術(shù)在在 _asm中使用匯編語言的注意事項:中使用匯編語言的注意事項:1. 嵌入式匯編支持嵌入式匯編支持 80486的全部指令系統(tǒng)。的全部指令系統(tǒng)。 VC++5/6還還支持支持 MMX指令集。指令集。2. 對于不支持的指令,對于不支持的指令, VC提供提供 _emit偽指令進行擴展偽指令進行擴展 define cpi_id _asm _emit 0x0F _asm _emit 0XA2 _asm { cpu_id} //使用使用 C++的宏的宏3. 嵌入式匯編代碼可以使用嵌入式匯編代碼可以使用 MASM的表達式來產(chǎn)生一的表達式來產(chǎn)生一個數(shù)值或地址個數(shù)值或地址4. 嵌入式匯編行可以采用嵌入式匯編行可以采用 C++或或 MASM的注釋風(fēng)格的注釋風(fēng)格5. 嵌入式匯編可以使用嵌入式匯編可以使用 C++的數(shù)據(jù)類型和數(shù)據(jù)對象,的數(shù)據(jù)類型和數(shù)據(jù)對象,但是不能使用但是不能使用 MASM的偽指令和操作符定義數(shù)據(jù),的偽指令和操作符定義數(shù)據(jù),如如 DB, DW, DUP 等等59現(xiàn)代微機原理與接口技術(shù)現(xiàn)代微機原理與接口技術(shù)6. 嵌入式匯編不支持嵌入式匯編不支持 MASM的宏指令,也不支持大部的宏指令,也不支持大部分分 MASM偽偽 指令指令7. 用匯編語言編寫的函數(shù)中,不必保存用匯編語言編寫的函數(shù)中,不必保存EAX/EBX/ECX/EDX/ESI和和 EDI寄存器,但是必須寄存器,但是必須保存函數(shù)中使用的其他寄存器保存函數(shù)中使用的其他寄存器8. 嵌入式匯編代碼可以使用嵌入式匯編代碼可以使用 LENGTH(( 返回數(shù)組元素返回數(shù)組元素個數(shù))個數(shù)) 、 TYPE(( 返回返回 C++類型或變量的大?。╊愋突蜃兞康拇笮。?、 SIZE(( LENGTHTYPE)) 操作符。操作符。對于數(shù)據(jù)對于數(shù)據(jù) int iarray[8](( int類型是類型是 32位位 ,4字節(jié)字節(jié) ),), 則:則:LENGTH iarray 返回返回 8 TYPE iarray 返回返回 4SIZE iarray 返回返回 3260現(xiàn)代微機原理與接口技術(shù)現(xiàn)代微機原理與接口技術(shù)在在 _asm中使用中使用 C++語言的注意事項:語言的注意事項:1. 嵌入式匯編代碼可以使用嵌入式匯編代碼可以使用 C++的符號(包括標(biāo)號、的符號(包括標(biāo)號、變量、函數(shù)名)、常量(包括符號常量、枚舉成員變量、函數(shù)名)、常量(包括符號常量、枚舉成員)、宏和預(yù)處理指令、注釋、類型名及結(jié)構(gòu)、聯(lián)合)、宏和預(yù)處理指令、注釋、類型名及結(jié)構(gòu)、聯(lián)合的成員。的成員。2. 每一個匯編語句只能包含一個每一個匯編語句只能包含一個 C++符號,且不能使符號,且不能使用和用和 MASM保留字相同的保留字相同的 C++符號,也不識別符號,也不識別 struct和和 union關(guān)鍵字關(guān)鍵字3. _asm中引用函數(shù)前必須在程序說明其原型中引用函數(shù)前必須在程序說明其原型4. 嵌入式匯編語句中可以使用匯編語言格式表示整數(shù)嵌入式匯編語句中可以使用匯編語言格式表示整數(shù)常量,也可以采用常量,也可以采用 C++的格式(如的格式(如 0x37a))61現(xiàn)代微機原理與接口技術(shù)現(xiàn)代微機原理與接口技術(shù)5. 嵌入式匯編語言中不能使用嵌入式匯編語言中不能使用 C++專用操作符,如專用操作符,如 ,可以使用兩種語言都有的操作符,可以使用兩種語言都有的操作符6. 嵌入式匯編中可以引用包含該嵌入式匯編中可以引用包含該 _asm作用范圍內(nèi)的任作用范圍內(nèi)的任何符號(包括變量),它通過使用變量名引用何符號(包括變量),它通過使用變量名引用 C++的變量的變量7. 嵌入式會變中的標(biāo)號的作用范圍為定義它的函數(shù)中嵌入式會變中的標(biāo)號的作用范圍為定義它的函數(shù)中有效,匯編轉(zhuǎn)移指令和有效,匯編轉(zhuǎn)移指令和 C++的的 goto指令都可以跳到指令都可以跳到_asm塊內(nèi)或塊外的標(biāo)號塊內(nèi)或塊外的標(biāo)號8. _asm塊中塊中 定義的標(biāo)號對大小寫不敏感,匯編語言指定義的標(biāo)號對大小寫不敏感,匯編語言指令跳轉(zhuǎn)到令跳轉(zhuǎn)到 C++中的標(biāo)號也大小寫不敏感,但中的標(biāo)號也大小寫不敏感,但 C++的的goto語句跳轉(zhuǎn)的標(biāo)號大小寫敏感語句跳轉(zhuǎn)的標(biāo)號大小寫敏感62現(xiàn)代微機原理與接口技術(shù)現(xiàn)代微機原理與接口技術(shù)int array[6]struct first_type{ char *carray。 int same_name。} ftype。struct second_type{ int same_name。} stype _asm{ mov array[6], dx mov ebx,OFFSET ftype mov ecx, [ebx].carray mov esi, [ebx]}使用 C++數(shù)據(jù)舉例63現(xiàn)代微機原理與接口技術(shù)現(xiàn)代微機原理與接口技術(shù)嵌入式匯編舉例:include int power2(int, int)。void main(void) { cout2的 6次方乘 5等于 :\t。 coutpower2(5,6)endl。}int power2(int num, int power) { _asm { mov eax, num 。 取第一個參數(shù) mov ecx, power 。 取第二個參數(shù) shl eax, cl 。 計算 EAX=EAX( 2CL) } // 返回值存于 EAX}64現(xiàn)代微機原理與接口技術(shù)現(xiàn)代微機原理與接口技術(shù)匯編語言通過參數(shù)名就可以引用參數(shù),采用 return返回出口參數(shù),也可以不寫 return, 編譯時可能有警告。返回值的約定返回值的約定 :? ≤32位的數(shù)據(jù)擴展到 32位,存放在 EAX中返回? 4~ 8字節(jié)的返回值存放在 ? 更大的字節(jié)數(shù)據(jù)將它的地址指針存放在 EAX中返回65
點擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1