組合語言資料偽指令DUP用法,組合語言中的dup有什麼作用

時間 2021-07-14 02:14:32

1樓:茲斬鞘

10 dup(1)重複定義了10個字元素,初始值為1,佔用10*2=20個位元組。

5 dup(?)重複定義了5個字元素(其初始值實際為0),佔用5*2=10個位元組

因此總共佔用30個位元組。

具體分析:在彙編定義變數的時候會用到dup,變數名 、型別 、初值表,dup用於把一個相同值賦值若干次,重複次數 dup(資料項),具體比如s db 30 dup(0),定義一個位元組型變數,該變數佔用30個位元組,所有位元組被初始化成0,equ是一個**替換指令。

擴充套件資料

在組合語言中,用助記符代替機器指令的操作碼,用地址符號或標號代替指令或運算元的地址。在不同的裝置中,組合語言對應著不同的機器語言指令集,通過彙編過程轉換成機器指令。特定的組合語言和特定的機器語言指令集是一一對應的,不同平臺之間不可直接移植。

比如:用“add”代表數字邏輯上的加減,“ mov”代表資料傳遞等等,通過這種方法,人們很容易去閱讀已經完成的程式或者理解程式正在執行的功能,對現有程式的bug修復以及運營維護都變得更加簡單方便。

2樓:侃民生看社會

前面對於資料的定義:db:定義位元組型資料(8位);dw:定義字型資料(16位)。

dd定義dowrd(double word,雙字)型資料。比如:

data segment

db 1

dw 1

dd 1

data ends

解釋:在data段總定義了3個資料:

第一個資料為01h,在data:0處,佔一個位元組;

第二個資料為0001h,在data:1處,佔1個字(2個位元組);

第三個資料為00000001h,在data:3處,佔2個字(4個位元組)。

用div計算data段中第一個資料除以第二個資料後的結果,商存放在第三個資料的儲存單元中。

data segment

dd 100001

dw 100

dw 0

data ends

分析:data段中的第一個資料是被除數,為dword型(32位)。在做除法之前,用dx和ax進行儲存。

將data:0字單元中的低16位儲存在ax中,data:2字單元中的高16位儲存在dx中。

mov ax, data

mov ds, ax

mov ax, data:[0] ;ds:0字單元中的低16位儲存到ax中

mov dx, data:[2] ;ds:2字單元中的高16位儲存到16中

div word ptr ds:[4] ;用dx:ax中的32位資料除以ds:4字單元中的資料

mov ds:[6], ax ;將商儲存到ds:6字單元中

dup是一個操作符,在組合語言中同db、dw、dd等一樣,也是由編譯器識別處理的符號。它是和db、dw、dd等資料定義偽指令配合使用的,用來進行資料的重複。

db 3 dup (0):定義了3個位元組,它們的值都是0,相當於db 0, 0, 0。

db 3 dup (0,1,2);定義了9個位元組,它們是0,1,2,0,1,2,0,1,2,相當於:db 0,1,2,0,1,2,0,1,2。

db 3 dup ('abc', 'abc');定義了18個位元組,他們'是abcabcabcabcabcabc',相當於:db 'abcabcabcabcabcabc'。

dup的使用格式如下:

db 重複的次數 dup (重複的位元組型資料)。

dw 重複的次數 dup (重複的字型資料)。

dd 重複的次數 dup (重複的雙字資料)。

dup是一個十分有用的操作符,比如我們要定義一個容量為200個位元組的棧段,如果不用dup,則需要大量的**來進行定義。如果用dup的話:

stack segment

db 200 bup (0)

stack ends

3樓:匿名使用者

dup是資料定義偽指令,它可以按照給定的次數來複制某個運算元,可以避免多次鍵入同樣一個資料。

()裡是要重複的數

如果是(?),表示不對內部資料進行處理,內容不定是什麼如果是(80),就是定義內容為8的記憶體單元,

組合語言中的dup有什麼作用

4樓:

dup是資料定義偽指令,它可以按照給定的次數來複制某個運算元,可以避免多次輸入同樣一個資料。

db x dup()

x是重複的次數

()裡是要重複的數逗號分隔

5樓:匿名使用者

n dup()就是將括號裡的**重複 n 遍 也就是迴圈語句

組合語言dup是什麼意思

6樓:匿名使用者

dup 是一條偽指令,用來重複初始化資料

如:str db 10 dup ('abc') ;這就是十個abc

格式:db 重複的次數 dup (重複的內容)

組合語言中je 和jne的區別,組合語言指令JG與JGE的用法區別

je 表示等於就跳轉,jne是不等於就跳轉,完全相反的意思。je jmp equal jne jmp not equal jz 表示當zf 1 時跳轉,即結果為0跳轉。jnz 即 zf 0 時跳轉,即結果不為0 跳轉。jz是零標誌位置位 1 即為0 時跳轉。jnz與上面相反,是當零標誌位置0 0 即...

組合語言儲存結構示意圖,組合語言記憶體中資料存放

d dw c,a,b 語句中,裡面的 a,b 是 a b 還是 ab 下面按照 ab 來描述。b 為資料常量,不佔記憶體單元。彙編編譯器的結果,如果生成的是bin檔案,絕對記憶體位址就在左邊,該滿意了吧,最後乙個c被編譯器翻譯成乙個位址c 0004h line loc machine code so...

x86組合語言的MOV指令

mov在組合語言中是 資料傳送指令。用法如下 mov move opcodes 88,89,8a,8b,8c,8e,mov指令將第二個運算元 可以是暫存器的內容 記憶體中的內容或值 複製到第一個運算元 暫存器或記憶體 mov不能用於直接從記憶體複製到記憶體,其語法如下所示 mov mov mov m...