匯編語言段定義的使用
段定義三步走
段定義
關鍵字:segment(開始) ends(結束)
段名:不得超過八個字符。一般情況下,
- code 表示代碼段。
- data 表示數(shù)據(jù)段
語法
段名 segment 段名 ends
段關聯(lián)
關鍵字:assume
類型:CS(代碼段)、DS(數(shù)據(jù)段)、SS(堆棧段)、ES(附加段)
語法:
assume 類型:段名
例:定義一個代碼段 code,定義一個數(shù)據(jù)段 data
code segment assume cs:code,ds:data code ends data segment data ends
段傳送
傳送是將段中的數(shù)據(jù)傳到指定的段寄存器中。例如,講 data 中的數(shù)據(jù)傳到 DS 數(shù)據(jù)段中,在關聯(lián)的時候并沒有真正的傳遞數(shù)據(jù)。
代碼段在定義時不需要段傳送,其他段都需要手動傳送。
通過 mov 不能將段直接傳遞給段寄存器,可以間接行傳送。
…… mov ax,data mov ds,ax ……
這段代碼表示,現(xiàn)將 data 數(shù)據(jù)段存到 ax 中,再將 ax 中的數(shù)據(jù)存到 ds 中。
數(shù)據(jù)段
開辟空間的偽指令
- db:開辟一個字節(jié)空間。
- dw:開辟一個字空間。(兩個字節(jié))
- dup:循環(huán)存字符
存儲數(shù)據(jù)
- 存儲 10 進制數(shù)據(jù)時,直接寫入。
- 存儲字符數(shù)據(jù)時用單引號擴起來,最終在 debug 模式下現(xiàn)實的是該字符 ASCII 碼16進制表現(xiàn)形式。
語法格式
無地址符號
有地址符號
代碼演示
使用 db 定義 5 個奇數(shù),將第一個數(shù)存到 AH 中,最后一個數(shù)存到 AL 中。
最終,AX=0109,恰好是 AH 與 AL 的拼接。
使用 dw 定義 5 個奇數(shù),存入 AX 中。
利用 dup 開辟三個單字節(jié)空間
data segment str db 3 dup(5) data ends code segment assume cs:code,ds:data main: mov ax,data mov ds,ax edit: mov ah,4ch int 21h code ends end main
到此這篇關于匯編語言段定義的使用的文章就介紹到這了,更多相關匯編語言段定義內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
使用匯編語言實現(xiàn)if else 循環(huán)函數(shù)調用的具體方法
這篇文章主要介紹了使用匯編語言實現(xiàn)if else 循環(huán)函數(shù)調用的具體方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-01-01從匯編代碼開始全面解析synchronized還原最真實的偏向鎖
這篇文章主要為大家介紹了從模板解釋器匯編源碼開始分析還原最真實的偏向鎖實現(xiàn),解釋monitorenter字節(jié)碼命令的方法開始,從匯編代碼開始全面解析synchronized2022-02-02