1樓:湯旺河邊
db: 定義位元組型別變數的偽指令
dup(): 重複定義圓括號中指定的初值,次數由前面的數值決定
?: 只分配儲存空間,不指定初值
組合語言這句指令是什麼意思string1 db 40,?,40 dup(?)
2樓:井小美
這樣一種定義是在dos功能呼叫(10號功能)中使用,10號功能是字串輸入,現在這樣定義,第一個40表示字串輸入最大字元數,後面是用?表示實際輸入的個數,字串輸入是以回車作為結束符,所以按完回車後會自動統計字元的個數,這個個數就放在第二個單元,後面的40就是開了40個空間,依次存放按下的鍵值(放在裡面的是字元型的內容,一個字元放一個空間)
3樓:匿名使用者
db是資料定義偽指令,string1是這段資料的首地址,問號「?」表示空出一個位元組的儲存單元,但不存入資料。
第一個40是資料,
第二個40是在dup(?)之前,表示空出40個儲存單元,但不存入資料。
綜上,string1開始共有42個資料,第一個資料是40,從第二個資料到最後都是隻空出單元,但不存放資料的。
組合語言中da1 db 04h dup(3 dup(2),2 dup(3))什麼意思
4樓:樂樂__樂樂
da1是這串記憶體的名字,也是首地址,db代表型別為byte,即8位的,區別於dw,dd,
dup 在彙編中是一條偽指令,用來重複初始化資料用法舉例:
str1 db 10 dup ("!@#") ;這就是十個!@#這裡就是巢狀的dup,04h就是轉化成10進位制就是4d,即把第一個dup後邊的內容重複4遍,括號裡也是一樣,把2重複三遍,把3重複兩遍,再把整體重複四遍,最終記憶體中分配的就是:
0010h
0010h
0010h
0011h
0011h 這五行在記憶體中重複4遍,da1指向這段記憶體的首地址
5樓:匿名使用者
首先, n dup('...')表示重複()中的內容n次;
db 是偽指令,表示定義位元組變數;
da1 db ... 表示定義的位元組變數名為da1;
具體到 04h dup(3 dup(2),2 dup(3)) ,我們可以先解除裡面的(),變成:
04h dup(2,2,2,3,3)然後再變成:
da1 db 2,2,2,3,3, 2,2,2,3,3, 2,2,2,3,3, 2,2,2,3,3
所以,其意思是:從名為da1的位元組變數起,依次存放2,2,2,3,3, 2,2,2,3,3, 2,2,2,3,3, 2,2,2,3,3 這20個數。
6樓:匿名使用者
相當於定義一些資料:
da1是名稱
,db是定義位元組,這個語句可以詳細解釋為:重複4遍 2,2,2,3,3.
即為da1 db 2,2,2,3,3,2,2,2,3,3,2,2,2,3,3,2,2,2,3,3;
7樓:匿名使用者
dup(3 dup (2), 2 dup (3))這是個dup的 "巢狀(學過c的都會懂)" 呼叫。
dup指令的用法是: count dup (表示式,表示式,表示式,...)
因此,我們先看最裡面3 dup(2),這個應該你能看懂吧,就是把2重覆兩次
相應的2 dup(3)你也就懂了吧,
那麼,再把最外層的dup(?,?)裡面的引數做為一個數字,你也就能理解了吧。
組合語言中da1 db 04h dup(3 dup(2),2 dup(3))什麼意思?
8樓:匿名使用者
dup(3 dup (2), 2 dup (3))這是個dup的 "巢狀「。
1、dup指令的用法是: count dup (表示式,表示式,表示式,...)。
2、dup它有多種意義,包括linux c 函式、c語言函式dup、彙編指令、化學物質dup。
3、由dup返回的新檔案描述符一定是當前可用檔案描述中的最小數值。用dup2則可以用fd2引數指定新的描述符數值。
4、如果fd2已經開啟,則先關閉。若fd1=fd2,則dup2返回fd2,而不關閉它。通常使用這兩個系統呼叫來重定向一個開啟的檔案描述符。
組合語言編寫**本程式時_name db 10,?,10 dup(?)是什麼意思
9樓:土匪平頭
因為name 的意思是模組定義偽操作,被系統徵用了這個名字,所以要加下劃線加以區分。
db 10,?,10 dup (?)
意思是_name 單元中分配了儲存單元,且第一個單元存放的是10,然後?代表只是分配了儲存單元,但是沒有定義初值。 10 dup (?
)表示分配了連續十個儲存單元存放的都是?,也就是都只分配了儲存單元,但是沒有初值。
那問號是什麼意思,比如db 5 dup(?)
10樓:匿名使用者
db 5 預留5位元組的資料空間
dup(?) 這5位元組的資料,不進行初始化,只要申請足夠5位元組的空間就行了,至於內容隨便
但通常情況下, db 5 dup(?) 都出現在全域性變數的地方, 或其他段更可能出現在**段,但在哪都無所謂,因為pe檔案在載入到記憶體的時候,都是新申請的空間,裡面的資料都是由系統初始化過的0,所以,問號內容99.9999999%的情況下都是 0。。。
11樓:永星天恆
問號指的是不對儲存器中相應地址中的數值進行初始化,也就是說,儲存器中,原來是什麼值,分配空間後還是什麼值
12樓:匿名使用者
就是指對應的值不確定
組合語言中 db 18dup(0,2dup(0))和db 18dup(2dup(0))分別是什麼意
13樓:匿名使用者
組合語言中:
db 18 dup(0,2 dup(0))表示定義(18+18*2)個位元組的0。
db 18 dup(2 dup(0))表示定義(18*2)個位元組的0。
組合語言中 buff db 60 dup (?) 是什麼意思?
14樓:星星響應
在彙編定義變數的時候會用到dup。
變數名 型別 初值表
dup用於把一個相同值賦值若干次。
重複次數 dup(資料項)
具體比如s db 30 dup(0)
定義一個位元組型變數,該變數佔用30個位元組,所有位元組被初始化成0
組合語言中的dup,彙編中dup是什麼意思
15樓:四舍**入
dup即英文duplicate的縮寫,重複的意思,用來定義重複的位元組、字、雙字、結構等記憶體緩衝區。
例如:它可以按照給定的次數來複制某個運算元,可以避免多次輸入同樣一個資料。
其中:db x dup(),x是重複的次數,()裡是要重複的數逗號分隔。
16樓:匿名使用者
組合語言中dup是定義資料**的容量。
組合語言資料偽指令DUP用法,組合語言中的dup有什麼作用
10 dup 1 重複定義了10個字元素,初始值為1,佔用10 2 20個位元組。5 dup 重複定義了5個字元素 其初始值實際為0 佔用5 2 10個位元組 因此總共佔用30個位元組。具體分析 在彙編定義變數的時候會用到dup,變數名 型別 初值表,dup用於把一個相同值賦值若干次,重複次數 du...
組合語言中out和in的用法,組合語言中OUT和IN的用法
在8086系列的組合語言中 in指令的意思是從埠中讀取資料,比如 in al,80h,將80h埠資料讀入到al中 out指令的意思是往埠輸出資料,比如 out 80h,al,將al輸出到80h埠 組合語言中,cpu對外設的操作通過專門的埠讀寫指令來完成 讀埠用in指令,寫埠用out指令。例子如下 i...
組合語言中語句xorebx,ebx什麼意思
邏輯異或運算指令 xor 格式 xor oprd1,oprd2 功能 實現兩個運算元按位 異或 運算,結果送至目的運算元中.oprd1 oprd1 xor oprd2一般windows用他給暫存器清零。例如你要使ax 0 xor ax,ax xor 就是異或運算 自身異或就是清0 xor ebx,e...