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

2021-07-14 02:13:40 字數 2507 閱讀 4095

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 (重複的內容)

組合語言的偽指令是什麼

簡單理解就是匯 bai編du語言中那些zhi 沒有對應機器指令的彙編指令。dao 在計算機中直接執行的程式所對專應屬的叫機器 指令 語言,如果直接按二進位制表示出來就是一系列 0 和 1 當然,用機器語言編寫程式的時代一般都使用八進位制或十六進製制,它們和二進位制是3位對1位或4位對1位的關係,從而...

計算機指令與組合語言偽指令有何區別

計算機指令是cpu實際能夠執行的指令,而組合語言偽指令只是告訴彙編器該如何進行彙編的一些資訊 例如,在什麼位址存放指令,定義一些常數等等 不是處理器的指令。看看 http hi.機器指令指的是一系列的由01組成的二進位制編碼,只有cpu才知道是什麼意思,不過人們也可以通過乙個對照表將機器碼翻譯成我們...

組合語言中loop指令的含義

該指令的功能是 dec cx jnz即先對cx減1,然後判cx是否為0,不為0,轉後面給出標號所指的入口,為0,順序執行 功能有二 第乙個是在在迴圈使用時 mov cx,n s loop s 使得cx減一,然後繼續迴圈,注意是先減一,若減一後cx為零了,那麼就不執行迴圈了,跳過loop s向下執行。...