日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

汇编学习笔记47

發(fā)布時間:2025/3/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 汇编学习笔记47 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

三、 重復(fù)匯編

有時程序會連續(xù)地重復(fù)完成相同或幾乎相同的一組語句,當(dāng)出現(xiàn)這種情況時,可考慮用重復(fù)偽指令定義的重復(fù)塊,以簡化源程序。

重復(fù)塊是允許建立重復(fù)語句的宏的一種特殊形式,它們與宏的不同之處在于它們沒有被命名,并因而不能被調(diào)用。

1. 偽指令 REPT

偽指令REPT用于創(chuàng)建重復(fù)塊,重復(fù)塊的重復(fù)次數(shù)由一個數(shù)值表達式的值給定。一般格式如下:

REPT 數(shù)值表達式

需重復(fù)的語句組

ENDM

宏匯編程序把“需要重復(fù)的語句組”連續(xù)地重復(fù)匯編由表達式所決定的次數(shù)。

例1:

CHAR = 'A'

TABLE LABEL BYTE

REPET 26

DB CHAR

CHAR=CHAR+1

ENDM

匯編為:

+ TABLE LABEL BYTE

+ DB 'A'

+ DB 'A'+1

+ …

+ DB 'A'+24

+ DB 'A'+25

例2:

要求建立一個100D字的數(shù)組,其中每個字的內(nèi)容是下一個字的地址,而最后一個字的內(nèi)容是第一個字的地址

ARRAY LABEL WORD

REPET 99

DW $+2

ENDM

DW ARRAY

匯編后:

+ ARRAY ABBEL WORD

+ DW $+2

+ DW $+2

+ …

+ DW $+2

+ DW ARRAY

2. 偽指令I(lǐng)RP

偽指令I(lǐng)RP用于創(chuàng)建重復(fù)塊。重復(fù)次數(shù)和每次重復(fù)使用的實參由參數(shù)列表決定。一般格式如下:

IRP 形式參數(shù), <實參1, 實參2, ……, 實參n>

需重復(fù)的語句

ENDM

其中實參的個數(shù)決定了重復(fù)的次數(shù)

例3:

下面重復(fù)塊實現(xiàn)把0~9的平方存入數(shù)值QUART中

QUART LABEL BYTE

IRP X, <0, 1, 2, 3, 4, 5, 6, 7, 8, 9>

DB X*X

ENDM

例4:

下面的重復(fù)塊實現(xiàn)了把若干寄存器壓入堆棧

IRP REG, <AX, BX, CX, DX>

PUSH REG

ENDM

+ PUSH AX

+ PUSH BX

+ PUSH CX

+ PUSH DX

3. 偽指令 IRPC

偽指令I(lǐng)RPC和IRP相似, 但實參列表是一個字符串,一般格式如下:

IRPC 形式參數(shù) 字符串

需要重復(fù)的語句組

ENDM

字符串的長度規(guī)定了重復(fù)的次數(shù),如果字符串包含了空格, 逗號等分隔符, 那么字符串需用一對尖括號括起來。

例5:

TABLE LABEL BYTE

IRPC X, 0123456789

DW (X+1)*2

ENDM

例6:

下面重復(fù)語句塊實現(xiàn)把AX, BX, CX, DX四個寄存器依次壓入堆棧

IRPC REG, ABCD

PUSH REG&X

ENDM

轉(zhuǎn)載于:https://www.cnblogs.com/hailong/archive/2011/01/23/1942322.html

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的汇编学习笔记47的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。