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

正文內(nèi)容

masm手冊-文庫吧資料

2025-07-05 07:24本頁面
  

【正文】 如含有多個寄存器的,也是以同樣的方式工作: mov eax,[ebx*2+ecx+offset] mov ax,[bp+di+8] NASM在這些有效地址上具有進行代數(shù)運算的能力,所以看似不合法的一些有效地址 使用上都是沒有問題的: mov eax,[ebx*5] 。比如: wordvar dw 123 mov ax,[wordvar] mov ax,[wordvar+1] mov ax,[es:wordvar+bx] 任何與上例不一致的表達都不是NASM中有效的內(nèi)存引用,比如:39。 有效地址 一個有效地址是一個指令的操作數(shù),它是對內(nèi)存的一個引用。要重復(fù)多于一行的代 碼,或者一個宏,使用預(yù)處理指令39。64$+buffer39。在宏被分析后再被處理,它允許 ’TIMES39。不可以被用在宏上:原因是39。() 注意39。TIMES39。RESB39。EQU39。之間并沒有顯著的區(qū)別,除了后者在匯編 時會快上一百倍。跟39。的長度精確地定義為64字節(jié),’TIMES‘可以被用在一般地指令上, 所以你可像這要編寫不展開的循環(huán): times 100 movsb 注意在39。 它可以把39。 times 64$+buffer db 39。的參數(shù)不僅僅是一個數(shù)值常 數(shù),還有數(shù)值表達式,所以你可以這樣做: buffer: db 39。39。TEIMES39。語法的等價物。它在某種程序上是NASM的與MASM兼容匯編器的 39。TIMES39。: 重復(fù)指令或數(shù)據(jù)。注意 ‘EQU’的操作數(shù)也是一個嚴格語法的表達式。$39。msglen39。不能再被重定義。39。msglen39。hello, world39。的行為就是把給出的label的名字定義成它的操作數(shù)(唯一)的值。 39。EQU39。EQU39。: 定義常數(shù)。 skip the first 1024, and 。 include the whole file incbin ,1024 。這能很方便地在一個游戲可執(zhí)行文件中包含中圖像或聲音數(shù) 據(jù)。INCBIN39。:包含其他二進制文件。 reserve a word realarray resq 10 。 比如: buffer: resb 64 。RESB39。或類似的東西:現(xiàn)在我們所描述的正是NASM自己的方式。NASM不支持MASM/TASM的扣留未 初始化空間的語法39。被設(shè)計用在模塊的BSS段中:它們聲明 未初始化的存儲空間。, `RESQ39。, `RESW39。類的偽指令: 聲明未初始化的數(shù)據(jù)。不接受數(shù)值常數(shù)或字符串常數(shù)作為操作數(shù)。和39。 extendedprecision float 39。 floatingpoint constant dq 。 0x41 0x42 0x43 0x00 (string) dd 0x12345678 。abc39。 。s just a number) dw 39。 。 0x34 0x12 dw 39。 。,13,10,39。 character constants are OK db 39。a39。 just the byte 0x55 db 0x55,0x56,0x57 。和`DT39。, `DD39。 在NASM中,`DB39。 `DB39。TIEMS39。EQU39。INCBIN39。REST39。RESQ39。RESD39。RESW39。RESB39。DQ39。DD39。DW39。DB39。 偽指令是一些并不是真正的x86機器指令,但還是被用在了instruction域中的指 令,因為使用它們可以帶來很大的方便。來指明它所引用的內(nèi)存的尺寸。 或39。DWORD39。 this sets st1 := st1 + st0 fadd to st1 。 this sets st0 := st0 + st1 fadd st0,st1 。支持的所以指令的語法 細節(jié)可以參閱附錄B。符號),或者它們可以是有效的地址(),常數(shù)(),或 表達式。的語法風(fēng)格,在這種風(fēng)格中,寄存器名 前必須加上一個39。:NASM不使用39。,39。,39。,39。 指令操作數(shù)可以使用一定的格式:它們可以是寄存器,僅僅以寄存器名來表示(比 如:39。這樣的段前綴 可以單獨出現(xiàn)在一行上,NASM僅僅產(chǎn)生一個前綴字節(jié)?;?9。,39。,39。沒有清晰地語法 處理方式 在使用一個前綴時,指令不是必須的,像39。這樣的 指令,它沒有操作數(shù),但還是可以有一個段前綴, 對于39。但是對于象39。我們推薦 后一種語法。等效于代碼39。你也可以使用段寄存器 名作為指令前綴: 代碼39。O3239。O1639。A3239。A1639。REPNZ39。REPNE39。REPE/REPZ39。REP39。LOCK39。 instruction域可以包含任何機器指令:Pentium和P6指令,F(xiàn)PU指令,MMX指令還有甚 至沒有公開的指令也會被支持。$eax39。eax39。前綴,以表明它被作為一個標識符而不是保留字來處理。一個標識符還可 以加上一個39。?39。_39。.39。?39。.39。~39。39。39。$39。39。 會讓NASM在你定義了一個不以冒號結(jié)尾的label時警告你。運行NASM時帶上命令行選項39。lodab39。lodsb39。label后面的冒號同樣也是可選的。 NASM使用反斜線(\)作為續(xù)行符;如果一個以一個反斜線結(jié)束,那第二行會被認為 是前面一行的一部分。 ment 通常,這些域的大部分是可選的;label,instruction,ment存在或不存在都是允 許的。 第三章 NASM語言 NASM源程序行的組成。還是一個不被支持的語法。39。dw ?39。? equ 039。?39。,讀作保留64字節(jié)。, NASM需要這樣寫:39。MASM的程序員必須使用 39。TWORD39。TBYTE39。 其他不同。nowait39。等。,39。等,NASM則叫它們39。,39。叫它們 39。等,而39。,39。 NASM使用跟MASM不同的浮點寄存器名:MASM叫它們39。另外程序員需要在調(diào)用外部函 數(shù)時在需要的編寫CALL FAR指令,并必須跟蹤哪些外部變量定義是far,哪些是near。RETN39。RET39。RETF39。RETN39。RET39。程序員需要自己跟蹤那 些函數(shù)需要far call,哪些需要near call。 NASM不支持內(nèi)存模型。操作符。 作為NASM簡潔性的一部分,它同樣不支持39。它們都顯式地指定 被處理的字符串的尺寸。SCANSD39。MOVSW39。LODSB39。OUTS39。INS39。CMPS39。SCANS39。STOS39。MOVS39。LODS39。mov word [var],239。var39。給變量賦值。時會記住 類型,然后就可以隱式地合用39。然而,MASM在看到39。 NASM不存儲變量的類型。 也是錯誤的,正確的應(yīng)該是39。同樣,39。,這里,一個中括號外的部分加上括號內(nèi)的一個部分引用一個 內(nèi)存地址,上面代碼的正確語法是:39。 NASM因為關(guān)注簡潔性,同樣不支持MASM和它的衍生產(chǎn)品支持的的混合語法,比如像 :39。a8639。處理成一個無 操作符。讓預(yù)處理器把39。如果你希望讓大量的MASM代碼能夠被 NASM匯編通過,你可以編寫39。mov ax,bar39。mov ax,offset bar39。OFFSET39。mov ax,[bar]39。bar39。EQU39。mov ax,foo39。但任何對地址值 的操作不需要。你可以在NASM中這樣做,比如,如果你聲明了: foo equ 1 bar dw 2 然后有兩行的代碼: mov ax,foo mov ax,bar 盡管它們有看上去完全相同的語法,但卻產(chǎn)生了完全不同的操作碼 NASM為了避免這種令人討厭的情況,擁有一個相當簡單的內(nèi)存引用語未能。 NASM的設(shè)計思想是語法盡可能簡潔。操作符來保證所有的導(dǎo)出到其他代碼模式的符號都是大寫的;但 是,在僅僅一個單獨的模塊中,NASM會區(qū)分大小寫符事情。文件,你可以使 用39。, 39?;?9。如果你在匯編39。FOO39。Foo39。foo39。 一個簡單的區(qū)別是NASM是大小寫敏感的。如果你沒有使用過MASM,那最好先 跳過這一節(jié)。a8639。 MASM用戶速成。NASM39。!dNAME=my name就會正常工作了。s ic:\nasmlib39。!s!ic:\nasmlib39。環(huán)境變量的第一個 字符處寫上一個非減號字符,NASM就會把這個字符當作是選項的分隔符。 為了解決這個問題,NASM為此提供了一個特性,如果你在39。name39。dNAME=my39。my name39。也正因為如此,意味著值39。s ic:\nasmlib39。選項來定 義包含文件的標準搜索路徑。中使用39。你可以通過在39。NASMENV39。環(huán)境變量。 如果你要提交bug報告,你可能需要版本號。NASM v39。選項: 打印版本信息。這種警告信息缺省狀況下是打開的。0x7fffffffffff39。numberoverflow39。如果你需要它。包含源文件行中沒有指令卻定義了一個沒有結(jié)尾分號的label的 警告。這類警告信息 缺省情況下是輸出的,至于為什么你可能需要禁止它。 可禁止的警告信息類型有下列一些: (*)`macroparams39。worphanlabels39。w+orphanlabels39。orphanlabels39。它以使特定類型的匯編警告信息輸出有效或無效。w39。 有些情況甚至還要寬松:他們僅僅是一些值得提供給用戶的信息。字樣。這些情況被以類似錯誤的形式 報告給用戶,但在報告信息的前面加上39。選項: 使匯編警告信息有效或無效。) (*) 還有很多... 需要更多的關(guān)于操作符的信息。, `include39。, `ifdifi39。, `if39。,`else39。 (`arg39。預(yù)處理操作符。預(yù)處理操作符。預(yù)處理操作符被支持,它同TASM的ARG操作符相似。 (*)39。 在TASM兼容語法中是合法的。比如,39。 (*)擴號中的尺寸替換被支持。resp39。開頭的應(yīng)答文件可以由命令行指定。 (*)TASM風(fēng)格的以39。改為39。選項, 就會產(chǎn)生下列變化: (*)本地符號的前綴由39。如果使用了NASM的39。選項: 使用TASM兼容模式。關(guān)鍵字 沒有用的時候重載指定的大小(),如果2=n=3,會有5*n遍,而不是n遍。 多編優(yōu)化,最小化分支的偏移,最小化帶符號的立即數(shù),當39。更大的代碼,但在分支中的偏移地址沒有指定的情況下匯編成功的機率更大, (*)39。嚴格執(zhí)行兩遍優(yōu)化,但前向分支被匯編成保證能夠到達的代碼;可能產(chǎn)生比 39。 (*)39。O039。選項,你可以告訴NASM執(zhí)行多遍匯編。 使用39。這意味著如果你有一個復(fù)雜的源文件需要 多于兩遍的匯編。選項: 指定多遍優(yōu)化。選項(不需要參數(shù)),會讓NASM把 它強大的預(yù)處理器換成另一個什么也不做的預(yù)處理器。39。 選項: 不需要預(yù)處理。 該選項不能被用在那些需要預(yù)處理器去計算與符號相關(guān)的表達式的程序中,所以 如下面的代碼: %assign tablesize ($tablestart) 會在僅預(yù)處理模式中會出錯。o39。e39。 NASM允許預(yù)處理器獨立運行。 `e39。 為了與絕大多數(shù)C編譯器的Makefile保持兼容,該選項也可以被寫成39。不是一個在程序中預(yù)定義的宏。 比如,下面的命令語句: nasm dFOO=100 uFOO 會導(dǎo)致39。d39。p39。u39。 選項: 取消一個宏定義。D39。dDEBUG39。%ifdef39。%define FOO39。dFOO39。%define39。d39。%include39。p39。選項: 預(yù)定義一個宏。P39。U39。D39。I39。是等效的。%include 然后運行39。選項來指定一個文件預(yù)包含進你的源文件。 選項: 預(yù)包含一個文件 NASM允許你通過39。I39。i39。/usr/include39。39。%incldue 39。ifoo39。 所以,上例中最后面的一個反斜杠是必要的,在Unix下,一個尾部的正斜線也同樣是必要的。i39。與路徑名之間的空格是允許的,并且可選的。所以你可以從宏定義庫中 包含進一個文件,比如,輸入: nasm
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1