80X86偽指令

?8086 偽指令表

一、數據定義偽操作

偽 指 令 名 稱
語 句 格 式
功 能

定義字節類型的數據存儲區
[變量名] DB 表達式[,…]
定義一個以變量名為首址的字節類型數據存儲區,所含數據元素的個數由其后表達式的個數所決定,數據存儲單元的初值由對應表達式的值給出

定義字節類型的數據存儲區
[變量名] DW 表達式[,…]
同上,只是定義的為字類型的數據存儲區

定義雙字類型的數據存儲區
[變量名] DD 表達式[,…]
同上,只是定義的為雙字類型的數據存儲區

定義四字類型的數據存儲區
[變量名] DD 表達式[,…]
同上,只是定義的為四字類型的數據存儲區

定義十字類型的數據存儲區
[變量名]DT表達式[,。。。]
同上,只是定義的為十字節類型的數據存儲區

定義記錄類型數據存儲區
定義記錄
記錄名RECORD字段名:寬度[=表達示]{,…}

說明:每天個記錄可包含多個字段,字段的寬度指字段值所占的存儲位數(1-16),各字段
定義一個給定名字的記錄,但并不分配存儲單元

定義記錄存儲區
[變量名] 記錄名 <表達式[,表達式]>
定義一個以變量名為首地址的、類型為某記錄的數據存儲區,所含記錄的個數由其后表達式的個數所決定,各字段的值由對應表達式的值給出

定義結構類型數據存儲區
定義結構
結構名STRUC

<數據定義語句序列>

結構名 ENDS

說明:結構內數據定義語句中的變量名也稱為結構字段名
定義一個給定名字的結構,通過結構的定義說明了結構字段名的存在,但并不分配存儲單元

定義結構存儲區
結構變量名 結構名 <字段值表>
定義一個以結構變量名為首地址的、類型為某結構的數據存儲區,結構中各字段的值由字段值表按序給出




二、符號定義偽操作

偽指令名稱
語句格式
功能

等 價
符號名 EQU 表達式
用來為常量,表達式及其它各種符號定義一個等價的符號名,但并不分配存儲單元

等 號
符號名 = 表達式
同上,只是等號語句能對同一符號名再定義

定義符號名
變量名或符號LABEL類型
為當前存儲單元定義一個指定類型的變量或符號




三、定義段、組、過程的偽操作

段定義
段名SEGMENT [定位方式] [組合方式] ’類別’


定義了一個以SEGMENT偽指令開始,以ENDS偽指令為結束,給定段名的段

段結束
段名 ENDS

假定
ASSUME段寄存器:段名[,段寄存器:段名]或ASSUME NOTHING說明:其中的”段名”是程序中某一已定義段(或組)的名字,也可以是表達式”SEG變量或標號”
用來設定段寄存器與段之間的對應關系,也可以用來采取消段寄存器與段之間的對應關系(使用NOTHING時)

組定義
組名GROUP段名[,段名]說明:其中的”段名”也可以是表達式”SEG變量或標號”
將模塊中若干個段集合成一個組

(≤64KB),并賦予一個組名,這樣,組內各段之間的跳轉都可以看作是段內跳轉,組名也可以作為直接量或跨段前綴使用





附錄F 8086 偽指令表 ·304·

續表

偽 指 令 名 稱
語 句 格 式
功 能

過程定義
過程名PROC[NEAR]或FAR
定義了一個以PROC開始,以ENDP偽指令為結束的,給定過程名的過程

過程結束
過程名ENDP





四、程序模塊的定義與通信偽操作

偽 指 令 名 稱
語 句 格 式
功 能

定義模塊名
NAME模塊名
將本語句所在的,以END偽指令為結束的源程序定義成給定名字的模塊

源程序(模塊)結束
END[表達式]
該語句只能為源程序的最后一個語句,用以標志整個源程序(模塊)的結束,如果后面帶表達式,則為該程序的啟地址

說明公共符號
PUBLIC符號[,…]
用來說明其后的符號是公共符號,可以被其他模塊調用

說明外部符號
EXTRN符號:類型[,…]
用來說明其后的符號是外部符號,這些外部符號必須在他說定義的模塊中被說明成公共符號且類型必須與定義時的類型一致




五、宏定義偽操作

偽 指 令 名 稱
語 句 格 式
功 能

宏定義
宏指令名MACRO形式參數[,形式參數]
宏定義的開始語句,用來定義一個給定名字的宏指令

宏定義結束
ENDM
用來標志宏定義的結束或重復操作的結束

產生特殊符號
LOCAL 形式參數[,形式參數]
讓宏匯編程序自動為其后的形式參數順序生成特殊符號(范圍從??0000~??FFFFH)并用這些符號來取代宏體中的形參

取消宏定義
PURGE宏指令名[,宏指令名]
取消指定的宏定義

終止宏擴展
EXITM
終止MACRO調用或重復操作(REPT,IRP,IRPC

),立即退出擴展體,擴展體得剩余部分或重復就不執行了




六、重復匯編及條件匯編偽操作

偽 指 令 名 稱
語 句 格 式
功 能

給定次數的重復匯編
REPT表達式
重復塊的開始語句,表示要將重復塊重復匯編表達式所指定的次數

不定次數的
IRP形式參數,<實在參數1,…,實在參數N>
重復塊的開始語句,表示要將重復塊重復匯編由實參個數所給定的次數

重復匯編
IRPC形式參數,字符串
重復塊的開始語句,表示要將重復塊重復匯編由字符串長度所給定的次數

測試表達式的值
正條件:IF數值表達式,反條件:IFE數值表達式,說明:反條件指測試為真的條件與正條件正好相反,在功能說明欄中,圓括號中的內容為反條件
條件匯編塊的開始語句,表示如果表達式的值不為0為真,匯編其后的語句,否則為假,匯編[ELSE]后面的語句,如果[ELSE]不存在,則直接匯編ENDIF后面的語句

測試符號是否定義
正條件:IFDEF符號

反條件:IFNDEF符號
功能同上,只是測試條件為:如果其后符號以被定義(未定義)為真,否則為假

測試掃描次數
正條件:IF1

反條件:IF2
功能同上,只是測試條件為:如果是第一(或第二)遍掃描為真,否則為假

測試參數是否為空
正條件:IFB(參數)

反條件:IFNB(參數)
功能同上,只是測試條件為:如果該參數對應的實參存在(不存在)為真

測試字符串是否相等
正條件:IFIDN(參數1),(參數2)

反條件:IFIDN)(參數1),(參數2)
功能同上,只是測試條件為:如果字符串參數1與字符串參數2相等(不等)為真,否則為假

條件匯編結束
ENDIF
用來標志條件匯編塊的結束




七、換頁控制、列表控制偽操作

偽指令名稱
語句格式
功 能

輸出標題
TITLE正文
為源程序指定標題(≤60個字符)供列表文件輸出

輸出子標題
SUBTTL正文
用在標題之后指定一個小標題,其字符個數不限,但每行均要以SUBTTL開頭,如果SUBTTL不帶正文,則表示要取消前面的字標題




附錄 F 8086 偽指令表 ·305·

續表

偽指令名稱
語句格式
功 能

注釋
COMMENT定界符 文本定界符
為程序作注釋且不用加分號,其中文本字符個數不限,還可以是多行,只要在定界符之間即可,定界符是除空格以外的符號,必須在首尾同時出現

換頁
PAGE
使匯編列表文件輸出時換頁(每頁66行,每行80列)

PAGE頁長,頁寬
使匯編列表文件按指定的頁長(只每頁所含行數,可以是10~255),頁寬(指每行所含列數,可以是60~132)輸出

PAGE+
使匯編列表文件輸出時的章號加1

匯編列表文件輸出控制
.LIST
充許從該行開始的源文件及目標代碼全部在匯編列表文件中輸出(該偽質指令的功能為系統隱含狀態),直到遇到。XLIST偽指令為止用來指定從該行開始的源程序及目標代碼不在匯編列表文件中輸出,直到遇到,LIST偽指令為止。

.XLIST

宏展開列表輸出控制
.LALL
充許在匯編列表文件中列出所有宏擴展內容,包括不產生目標代碼的語句。

.XALL
用來指定在匯編列表文件中僅列出產生目標代碼的宏擴展內容(系統的隱含狀態)

.SALL
用來指定在匯編列表文件中不列出任何宏擴展的內容。

符號交叉引用文件輸出控制
.CREF
充許從該行起的內容在符號交叉引用文件中輸出,直到遇到。XCREF偽指令為止(系統隱含壯態)

.XCREF
用來指定從該行開始的內容不在符號叉引用文件中輸出,直到遇到。XCREF偽指令為止。

輸出正文
%OUT正文
在匯編期間,其后正文送顯示器顯示。





八、其它偽操作

偽 指 令 名 稱
語 句 格 式
功 能

置匯編地址計數器
ORG數值表達式
將匯編地址計數器置成數值表達式所給定的值

置偶地址邊界
EVEN
將匯編地址計數器的值調整成偶數

基數控制
RADIX數值表達式說明:該數值表達式的值要以十進制表示。
用來指定其后語句中所出現不帶數據類型后綴的數具有數值表達式所指定的基數(2~16),該偽指令對DD,DQ,DT數據定義偽指令不起作用。

將指定文本加入源文件
INCLUDE文本文件名
將指定的文本文件加入當前源文件中一起匯編

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/375330.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/375330.shtml
英文地址,請注明出處:http://en.pswp.cn/news/375330.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

jQuery慢慢啃之選擇器(二)

1.$("#myDiv");ID匹配一個元素 <span id"foo[bar]"></span> $("#foo\\[bar\\]);//轉義 2.$("div");//元素標簽名匹配 3.$(".myClass"); css類名匹配 4.$("*") 匹配所有元素&#xff0c;多用于結合上下文…

iOS學習之基本概念

學習iOS最重要的是態度和興趣&#xff0c;如果你對于學習始終抱有不斷的熱情和端正的態度&#xff0c;那么&#xff0c;無論是什么&#xff0c;你總會成功的&#xff01; 有一句話與大家共勉&#xff1a;過程中跌倒多少次都沒有關系&#xff0c;重要的是&#xff0c;跌倒后你能…

Win32ASM代碼基本模塊

;-------------------------------------------------------------------------------- ;程序環境設置 .386 .model flat,stdcall option casemap:none ;-------------------------------------------------------------------------------- ;頭文件與庫文件導入 include windo…

ORA-16038: log 3 sequence# 103 cannot be archived

[sizelarge]今天在自己機器做了個實驗&#xff0c;插入10萬條&#xff0c;由于空間少&#xff0c;重啟數據庫時出現&#xff1a; [sizex-large]SQL> startup ORACLE instance started. Total System Global Area 188743680 bytes Fixed Size 1218460 byte…

Win32ASM學習[23]:RadASM快捷鍵

RadASM快鍵操作 一.書簽 SHIFTF8為所在行下書簽或刪除書簽(Crtl0-9能定義存于文件中的10個書簽)&#xff0c; 可通過編輯\書簽\開關書簽。&#xff08;CRTLF8為下一書簽&#xff0c;F8為上一書簽&#xff09; 二、列選擇&#xff1a; 拉框時用到&#xff0c;CRTLB為切換行…

SAP MM/FI 自動過賬實現 OBYC 接口執行

一. 自動過賬原理 在MM模塊的許多操作都能實現在FI模塊自動過賬&#xff0c;如PO收貨、發票驗證(LIV)、工單發料、向生產車間發料等等。不用說&#xff0c;一定需要在IMG中進行配置才可以實現自動處理。但SAP實現的這種自動配置的機制是怎樣的呢&#xff1f;其實也并不復雜&…

JAVA 字符處理

/** * 分割字符串 * * param str String 原始字符串 * param splitsign String 分隔符 * return String[] 分割后的字符串數組 */ SuppressWarnings("unchecked") public static String[] split(String str, String splitsign) { int index; if (str null || …

Win32ASM-進程學習【1】

關于一些進程的概念就不說了。。。 一創建進程GreateProcess (1).當一個進程被創建時: ①.系統為進程創建一個內核對象,并將這個對象的計數設置為1,進程對象只是一個比較小的數據結構,可以通過進程句柄來引用 ②.系統為進程創建一個虛擬地址空間,并將可執行文件裝載到這個地…

Object-C,NSArraySortTest,數組排序3種方式

晚上回來&#xff0c;繼續寫Object-C的例子&#xff0c;今天不打算寫iOS可視化界面的程序&#xff0c;太累了。剛剛dady又電話過來&#xff0c;老一套&#xff0c;煩死了。其實&#xff0c;我一直一個觀點&#xff0c;無論發生什么事情&#xff0c;不要整天一副不開心的樣子。開…

android中listview的一些樣式設置

在Android中&#xff0c;ListView是最常用的一個控件&#xff0c;在做UI設計的時候&#xff0c;很多人希望能夠改變一下它的背景&#xff0c;使他能夠符合整體的UI設計&#xff0c;改變背景背很簡單只需要準備一張圖片然后指定屬性 android:background"drawable/bg"&…

Win32ASM-進程學習【2】

獲取運行中的句柄 1.從窗口句柄中獲取進程句柄 要對進程進行某種操作,就必須首先知道該進程的句柄或者進程ID 對于自己創建的子進程來說CreateProcess函數返回了子進程句柄和進程的ID 但是如果如果要對系統中運行的某個進程進行操作,那么首先獲取他們的句柄才行 如果知道某個…

完美解決IE8有兩個進程的問題

完美解決IE8有兩個進程的問題&#xff0c;照以下方法設置后就只有一個進程了&#xff0c;沒有什么負影響哦&#xff01; 方法&#xff1a; 1、winR&#xff0c;在運行框里輸入&#xff1a;gpedit.msc&#xff0c;回車進入組策略設置。 2、依次展開&#xff1a;計算機配置——管…

【轉】gvim配置及相關插件安裝

0.準備軟件及插件。(a)gvim72.exe 地址ftp://ftp.vim.org/pub/vim/pc/gvim72.exe。(b)vimcdoc-1.7.0-setup.exe 地址http://prdownloads.sourceforge.net/vimcdoc/vimcdoc-1.7.0-setup.exe?download(c)ec57w32.zip 地址http://prdownloads.sourceforge.net/ctags/ec57w32.zip(…

Win32ASM-進程學習[3]-讀寫進程空間

invoke ReadProcessMemory,hProcess,lpBaseAddress,lpBuffer,dwSize,lpNumberOfBytesReadinvoke WriteProcessMemory,hProcess,lpBaseAddress,lpBuffer,dwSize,lpNumberOfBytesWritten hProcess 指定將要被讀寫的目標進程句柄 lpBaseAddress 目標進程中被讀寫的起始線性地址. …

MongoDB使用記錄

安裝服務 使用以下命令將MongoDB安裝成為Windows服務。筆者的MongoDB目錄為D:\Program Files\mongodb mongod --logpath "D:\Program Files\mongodb\data\logs.txt" --logappend --dbpath "D:\Program Files\mongodb\data" --directoryperdb --serviceName…

OC基礎知識

Object C 語言基礎 第一節總括 這一節是對Objective-C(以后簡稱OC)的簡要介紹,目的是使讀者對OC有一個概括的認識。 1.面象的讀者 在閱讀本文之前,應具備使用與C類似的編程語言(如C,C,JAVA)的一些經驗,同時熟悉面向對象編程。 2.OC簡介 OC是以SmallTalk為基礎&#xff0c;建立…

Windows使用篩選器來處理異常

很久木有管博客了 最近也沒有學什么 Dos系統下發生異常后,系統會調用int 24h服務例程,然后根據中斷的返回值決定下一步要做什么,他會在屏幕上顯示ignore Retry Fail Abort 讓用戶選擇進而進行下一步操作 這樣的話 只要應用程序截取int 24h中斷,就可以隨意的"胡作非…

Android 高級編程 RecyclerView 控件的使用

RecyclerView 是Android 新添加的一個用來取代ListView的控件&#xff0c;它的靈活性與可替代性比listview更好。 看一下繼承關系&#xff1a; ava.lang.Object ?android.view.View ?android.view.ViewGroup ?android.support.v7.widget.RecyclerViewKnown Direct …

Android下點亮LED

http://blog.csdn.net/cpj_phone/article/details/43562551轉載于:https://www.cnblogs.com/Ph-one/p/4276974.html

SEH處理異常

Win32為每個線程定義了一個線程信息塊,其中保存了線程的一些屬性數據,線程信息塊的屬性被定義為NT_TIB結構 typedef struct _NT_TIB { struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList; PVOID StackBase; PVOID StackLimit; PVOID SubSystemTib; union { PVOID FiberDa…