組合語言裡的清零(答對給分,20以上)

2021-08-13 16:50:40 字數 2044 閱讀 8152

1樓:文刀舍予

還有就是將偏移置零的時候將暫存器清零

你舉的那個例子裡的xor bx,bx就是將偏移置零的,bx不是定址的暫存器嘛

如果你要用一個暫存器計數,首先要將這個暫存器清零,然後在迴圈過程中加一,然後當暫存器的數為某個數的時候就退出迴圈,不過好像基本沒有這麼用的,舉個例子而已

如果之前有賦值指令,也就是你舉的那個例子了→mov cx,n

就不用清零了

n估計是個串的長度,應該在資料段是定義好的

這中方法的好處是在減一的過程中用jnz就能作為退出迴圈的開關

在賦值之前不用將暫存器清零,直接就覆蓋了清不清零有什麼區別啊

回答的挺囉嗦,你努力看一下吧

2樓:

所謂清零,說穿了就是初始化,或者說賦初值,或重置初值.

在這個程式裡,bx的初始值為0,所以,可以這樣:xor bx,bx

而cx的初始值是n,不用多餘地先xor cx,cx,直接mov cx,n就可以了.

3樓:

你看一下bx,和cx是用來幹什麼,bx是用來定址的,不清零的話source[bx+n]是什麼鬼才知道,cx是用來計數的,可能後面還有一段迴圈,cx裡的n就表示迴圈次數,清零幹什麼。

組合語言中如何對暫存器清零

4樓:匿名使用者

一般常用 xor指令

不但指令短,而且執行速度快。

5樓:匿名使用者

樓上的第三種好,只是在暫存器間操作,沒有到記憶體取數

6樓:鯤鵬展翅

以暫存器ax為例

1.mov ax,0

2.and ax,0

3.xor ax,ax

組合語言中,出棧後 出棧的那個數值在棧中會被清零嗎?

7樓:匿名使用者

不會被清零。

組合語言中,出棧是通過pop指令來實現的,首先看一下intel手冊中對於pop指令的描述:

大致意思如下:pop指令從棧頂載入值到目標運算元指定的位置,然後增加棧頂指標。目標運算元可以是一個通用暫存器,記憶體位置或者段暫存器。

可以看到,手冊中並沒有提到出棧後pop要清空原有位置的值。因為這是不必要的,正常使用棧的話,出棧後那個位置的數值對棧沒有影響,在棧增長後,那個位置可能會被新的值覆蓋掉(即通過push壓棧),所以沒有必要清空它。而且,處理器和指令集設計的時候,必然會十分注重效率,不會做多餘的事情,清不清零對棧的使用完全沒有影響,所以設計師當然也不會讓pop做這件事。

8樓:匿名使用者

組合語言中,出棧後 出棧的那個數值在棧中 不會 被清零,

但是 如果有 新的 壓棧操作(入棧),會被新的資料替代。

9樓:匿名使用者

不會被清零,但是這個資料正常情況下不會被訪問到,除非特意去訪問這個資料

10樓:匿名使用者

出棧後 出棧的那個數值在棧中不會被清零 只是sp-1指向上一個棧地址了

11樓:匿名使用者

不會清零。

pop dst  指令執行過程:

(dst)<-((sp)+1, (sp))(sp)<-(sp)+2

可見,棧中資料並無變化,只是sp指標+2。

12樓:匿名使用者

不會清零。不信的話到原地址去看看原數變了沒。

13樓:魔塔過客

出棧操作其實變的只是指標sp.....原數值仍舊保留

14樓:

不會,是原封不動的,所以說自動變數總是一個隨機值,你每次宣告一個自動變數,棧指標就會增加,新變數的值實際上是上一次使用該記憶體的變數值。。。

組合語言中 cy能自動清零嗎

15樓:無畏無知者

cy自動清零,什麼意思?

通過相關指令的執行,cy會被清零;

組合語言裡JCJNCJBJNBJZJNZ的問題

jc jump if carry 有進位 即cf 1,則跳轉 jb jump if below 低於則跳轉 ja jump if above 高於則跳轉 jnz jump if not zero 不為零 即zf 1,則跳轉 jnge jump if not greater or equal 不大於等...

組合語言資料偽指令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...