彙編 重複彙編怎麼寫

2021-10-14 02:02:25 字數 1040 閱讀 8625

當我們想生成一系列的相同或相近**,我們就可以使用重複彙編的方式。

結構:

rept 整數表示式

重複體endm

其中整數表示式的值為迴圈次數。

比如我們需要設定乙個1-10的bd型別:

x=

0rept 10

x = x+

1 db x

endm

或者我們採取重複彙編將a到z填入陣列table中:

char = 『a』

table label byte

rept 26

db char

char = char+

1endm

其中的label標籤是不會分配位址的,就相當於乙個指標。

重複彙編在彙編的過程中

還記得我們的巨集嗎,巨集在彙編的過程中實際上就是乙個**塊替換,再加上幾個特殊符號,並沒有剩下指令數量,只是方便了程式設計。

同樣我們的重複彙編,其實在彙編的過程中是會被展開的,最後**行數也不會減少。

irp 形參,<實參表>     

重複體endm

舉例說明:

irp reg,<ax,bx,cx,dx> 

push reg

endm

在實際彙編的過程中,等價於這樣:

push   ax

push bx

push cx

push dx

還有乙個類似的irpc,不過其引數列表限制為字串。

irpc  x,0123456789

db x

endm

這樣就等價於:db 0,1,2,3,4,5,6,7,8,9

相比迴圈,重複彙編在彙編後的**量其實沒有減少。

不過因為不需要迴圈控制,重複彙編的執行速度會快,而且更加靈活。

彙編 巨集應該怎麼寫

還記得c中的define嗎,巨集是乙個和差不多的東西。c中的define可以替換掉一部分東西,然後在實際的實現中將define的別名換成實際內容,最後程式才能跑起來,這裡也一樣,我們可以定義乙個巨集,然後在程式設計中直接呼叫巨集,便於我們的程式設計,主要是減少 的長度。要明白,在最後的計算機實現,其...

彙編中的重複指令

duprep是字串操作指令movs,cmps等的字首,在cx不等於0的情況下,對字串執行重複操作。rep的重複次數也存在cx中,但是其實cx本身不具有讓cx 1的功能,一般是rep後面跟著的指令執行之後自動讓cx 1 還可以擴充套件出 repe 相等時重複 repne 不相等時重複 repz 為零時...

彙編 彙編介紹

what?什麼是組合語言 組合語言由3類指令組成 1.彙編指令 機器碼的助記符,有對應的機器碼 2.偽指令 沒有對應的機器碼,由編譯器執行,計算機並不執行 3.其他符號 如 等,由編譯器識別,沒有對應的機器碼 組合語言並不統一這個取決於硬體 不同的機器有不同的彙編指令集和不同的使用規則 why?為什...