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

正文內(nèi)容

masm手冊(存儲版)

2025-07-29 07:24上一頁面

下一頁面
  

【正文】 db 39。,39。,39。 and really looks like this 注意,如果作為39。db 39。DD39。跟上 一個指數(shù)。 10,000,000,000 dq +10 。 NASM不能確定編譯時在計算表達式時的整型數(shù)尺寸:因為NASM可以在64位系 統(tǒng)上非常好的編譯和運行,不要假設表達式總是在32位的寄存器中被計算的, 所以要慎重地對待整型數(shù)溢出的情況。39。 NASM提供的運算符以運算優(yōu)先級為序列舉如下: `|39。 `^39。39。相當于把5乘上8。 39。, `%39。和39。%39。 一元運算符: `+39。+39。 `SEG39。ES:BX39。ES:BX39。和39。 的工作方式跟39。BYTE39。TWORD39。,而 push strict dword 33 會被編碼成六個字節(jié),帶有一個完整的雙字立即數(shù)`66 68 21 00 00 0039。所以,有一件事 NASM不能處理,那就是一段代碼的尺寸依賴于另一個符號值,而這個符號又 在這段代碼的后面被聲明。NOW where am I?39。symbol139。,它不能為它產(chǎn)生正確的代碼,因為它還沒有知道39。右側(cè)的表達式也定義為臨界表達式,所以, 39。它沒有辦法知道39。 some more code jne .loop ret label2 。這 是通過在本地label的前面加上非本地label前綴實現(xiàn)的: 定義為39。所以NASM引進了第三類label,它只在宏定義中有用:如果一個label 以一個前綴39。 this will jump three lines up NASM還能定義其他的特殊符號,比如以兩個句點開始的符號,比如 39。打頭。 %define param(a,b) ((a)+(a)*(b)) mov byte [param(2,ebx)], ctrl 39。b39。會被擴展成39。%idefine39。會導致39。 當一個嵌套定義(一個宏定義中含有它本身)的宏被展開時,有一個機制可以 檢測到,并保證不會進入一個無限循環(huán)。會變成39。的定義都不會被接受了:一個不帶參數(shù)的宏定義不允許 對它進行帶有參數(shù)進行重定義。選項來預定義宏。%xidefine39。定義時,它只在被調(diào)用時進行展開。第一次宏被調(diào)用時,39。isTrue39。isFalse39。 ..and so on endstruc 現(xiàn)在,我們需要存取tBIOSDA中的元素,我們可以這樣: mov ax,BDASTART + mov bx,BDASTART + 如果在很多地方都要用到,這會變得非常的繁瑣無趣,但使用下面 的宏會大大減小打字的量: 。命令來取消。 Start of BIOS data area struc tBIOSDA 。isTrue39。isFalse39。isTrue39。這是因為,當一個單行宏用 39。%xdefine39。定義宏時非常有用() 你可以在命令行中使用39。盡管如此,但如果 你定義了: %define foo bar 那么其他的對39。 你甚至可以重載單行宏:如果你這樣寫: %define foo(x) 1+x %define foo(x,y) 1+x*y 預處理器能夠處理這兩種宏調(diào)用,它是通過你傳遞的參數(shù)的個數(shù)來進行區(qū)分的, 所以39。等都會被擴展成39。所以 39。都不會。之后,只有 39。mov ax, 1+2*839。定義的。機制 預處理指令都是以一個39。 another nonlocal label .local: 。 and some more jmp 有時,這是很有用的(比如在使用宏的時候),可以定義一個label,它可以 在任何地方被引用,但它不會對常規(guī)的本地label機制產(chǎn)生干擾。 的兩個定義通過與它們前面的非本地Label相關聯(lián)而被分離開來了。在第二遍的時候,這個決定已經(jīng) 作出了,它保持使這條指令很長,所以,這種情況下產(chǎn)生的代碼沒有足夠的小, 這個問題可以通過先定義offset的辦法得到解決,或者強制有效地址的尺寸大 小,象這樣寫代碼: [byte ebx+offset] 本地Labels NASM對于那些以一個句點開始的符號會作特殊處理,一個以單個句點開始的 Label會被處理成本地label, 這意味著它會跟前面一個非本地label相關聯(lián). 比如: label1 。mov eax,[ebx+offset]39。 NASM為了避免此類問題,把39。所以在第二遍的時候,當它遇 上39。類的偽指令的參數(shù)也是臨界表達式。它會拒絕這樣的代碼。所以它就不能處理那些非常復雜的需要三遍甚至更多遍匯編 的源代碼。BITS 1639。QWORD39。 當在匯編時把優(yōu)化器打開到2或更高級的時候()。39。NASM提供fall call(段內(nèi))和jump,這里 39。關鍵字,你可以這樣寫: mov ax,weird_seg 。SEG39。SEG39。39。%39。是帶 符號除。39。, `/39。 and `39。 提供位左移, 跟C中的實現(xiàn)一樣,所以39。: 位與運算符。是完全相 同的。$$39。$$39。所以,NASM為了能夠處理浮點運算,它必須含有它自己的一套完整 的浮點處理例程,它大大增加了匯編器的大小,卻獲得了并不多的好處。 一些例子: dd 。它們以傳統(tǒng)的形式表 達:數(shù)值,然后一個句點,然后是可選的更多的數(shù)值,然后是選項39。的操作數(shù)時被處理成字符串。ab39。ninechars39。 doubleword string constant dd 39。,39。hello39。指令理解的字符常 數(shù)形式() 字符串常數(shù)。 產(chǎn)生的常數(shù)不會是`0x6162636439。 hex again: the 0 is required mov ax,0xa2 。前綴在標識符中具有雙重職責 (),所以一個以39。,39。按字面意思被處理。[eax+eax]39。[eax]39。有一種特殊情 況,‘[byte eax]39。如果你想讓39。BYTE39。和39。 ie [label1+(label1label2)] 有些形式的有效地址在匯編后具有多種形式;在大多數(shù)情況下,NASM會自動產(chǎn)生 最小化的形式。要重復多于一行的代 碼,或者一個宏,使用預處理指令39。() 注意39。之間并沒有顯著的區(qū)別,除了后者在匯編 時會快上一百倍。 times 64$+buffer db 39。語法的等價物。注意 ‘EQU’的操作數(shù)也是一個嚴格語法的表達式。39。 39。 skip the first 1024, and 。:包含其他二進制文件?;蝾愃频臇|西:現(xiàn)在我們所描述的正是NASM自己的方式。, `RESW39。 extendedprecision float 39。 。 。 just the byte 0x55 db 0x55,0x56,0x57 。 `DB39。REST39。RESB39。DB39。DWORD39。符號),或者它們可以是有效的地址(),常數(shù)(),或 表達式。,39。或39。這樣的 指令,它沒有操作數(shù),但還是可以有一個段前綴, 對于39。你也可以使用段寄存器 名作為指令前綴: 代碼39。A1639。REP39。eax39。_39。~39。39。lodsb39。 第三章 NASM語言 NASM源程序行的組成。? equ 039。MASM的程序員必須使用 39。nowait39。,39。 NASM使用跟MASM不同的浮點寄存器名:MASM叫它們39。RETF39。 NASM不支持內(nèi)存模型。SCANSD39。INS39。MOVS39。給變量賦值。 也是錯誤的,正確的應該是39。a8639。mov ax,bar39。bar39。你可以在NASM中這樣做,比如,如果你聲明了: foo equ 1 bar dw 2 然后有兩行的代碼: mov ax,foo mov ax,bar 盡管它們有看上去完全相同的語法,但卻產(chǎn)生了完全不同的操作碼 NASM為了避免這種令人討厭的情況,擁有一個相當簡單的內(nèi)存引用語未能。, 39。Foo39。a8639。s ic:\nasmlib39。name39。s ic:\nasmlib39。NASMENV39。選項: 打印版本信息。如果你需要它。worphanlabels39。w39。選項: 使匯編警告信息有效或無效。, `if39。預處理操作符。比如,39。 (*)TASM風格的以39。選項: 使用TASM兼容模式。嚴格執(zhí)行兩遍優(yōu)化,但前向分支被匯編成保證能夠到達的代碼;可能產(chǎn)生比 39。 使用39。39。e39。不是一個在程序中預定義的宏。u39。%ifdef39。d39。P39。是等效的。I39。%incldue 39。與路徑名之間的空格是允許的,并且可選的。選項. `i39。MSDOS39。stdout39。MSDOS39。 來得到。 `l39。與輸出文件格式之間的空格也是可選的,所以39。bin39。o39。會產(chǎn)生的一個輸出文件39。, 對于39。,39。和39。39。ELF39。39。39。來編譯它們, 把這個文件改名為39。子目錄下, 你可以用39。39。二進制文件, 然后輸入39。./configuer39。39。 注意源文件`39。目錄一直存在(除非你把它 加到了你的39。把 nasm的路徑加到你的39。DOS39。結尾的是39。和39。 在網(wǎng)站Sourceforge上的列表是較好的一個列表,它也是最新nasm源代碼與發(fā)布的 一個網(wǎng)站,另外的列表也是公開的,但有可能不會被繼續(xù)長期支持。, `39。上獲取。 許可條件 請閱讀作為NASM發(fā)布的一部分的文件39。不是很好,并且相當貴,還且只能運行在DOS下。的一 個后臺而設計的,并不是很好,39。 ,我忘了),從本質(zhì)上講,是因為沒有一個好的免費的x86系例的匯編器可以使用, 所以,必須有人來寫一個。, 39。它支持39。,39。,但你可以改變自己;你無法改變天氣,但你可以改變心情;你無法改變生命長度,但你可以拓展它的寬度。ELF39。它的語法設計得相當?shù)暮? 潔易懂,和Intel語法相似但更簡單。3DNow!39。39。gcc39。MASM39。但請您發(fā)給我們bug報告,修正意見,和其他有用的 信息,還有其他任何你手頭有的對我們有用的信息(感謝所有已經(jīng)這樣在做了的 人們),我們還會不斷地改進它。更多的信息還可以在 `39。 公告被發(fā)布至`39。郵件列表。39。w39。的Intel處理器上的,另外的是 16位的39。39。nasm39。目錄還會包含完整的NASM源 代碼,你可以選擇一個Makefiles來重新構造你的NASM版本。 在unix下安裝NASM 如果你得到了Unix下的NASM源碼包39。到它的目錄下,輸入39。ndisasm39。39。rdoff39。39。 第二章 運行NASM NASM命令行語法 要匯編一個文件,你可以以下面的格式執(zhí)行一個命令: nasm f format filename [o output] 比如, nasm f elf 會把文件39。匯編成純二進制格式的文件39。請輸入: file nasm (在nasm二進制文件的安裝目錄下使用),如果系統(tǒng)輸出類似下面的信息: nasm: ELF 32bit LSB executable i386 (386 and up) Version 1 那么你的系統(tǒng)就是39。(Linux的39。obj39。aout39。.o39。39。選項,它能讓你指定 你的輸出文件的文件名,你使用39。在發(fā)布的 NASM版本中,缺省的輸出格式總是39。f39。得到。nasm f format y39。 在39。 選項: 把錯誤信息輸出到39。它可以在39。E39。i39。會導致 39。() 為了與絕大多數(shù)C編譯器的Makefile保持兼容,該選項也可以被寫成39。nasm 39。選項操持一致性,該選項也可以被寫成39。的另一種實現(xiàn),39。 這種形式的操作符在選擇編譯時操作中非常有用,它們可以用39。 39。FOO39。使用39。 如果NASM被用作編譯器的后臺,那么假設編譯器已經(jīng)作完了預處理,并禁止NASM的預
點擊復制文檔內(nèi)容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1