rept 7
store %i
i=i+1
endm
7.11 試編寫一段程式完成以下功能,如給定名為x的字串長度大於5時,下列指令將彙編10次。
add ax, ax
答:程式段如下:
x db 『abcdefg』
if ($-x) gt 5
rept 10
add ax, ax
endm
endif
答:巨集定義如下:
calcula te macro a, b, result ;;計算result←2*a+b
mov ax, a
shl ax, 1
add ax, b
mov result, ax
endm
finsum macro x, y, sum
if x gt y
calcula te y, x, sum
else
calcula te x, y, sum
endif
endm
7.13 試編寫一段程式完成以下功能:如變元x=『vt55』,則彙編mov terminal, 0;否則彙編
mov terminal, 1。
答:巨集定義如下:
branch macro x
ifidn ,
mov terminal, 0
else
mov terminal, 1
endif
endm
7.14 對於dos功能呼叫,所有的功能呼叫都需要在ah暫存器中存放功能碼,而其中有一些功能需要在dx中放乙個值。試定義巨集指令dos21,要求只有在程式中定義了緩衝區時,彙編為:
組合語言定義延時巨集
下面 在masm上利用延時巨集實現迴圈輸出00 99數字,程式執行時如果按下esc鍵可終止輸出結束程序。delay macro time 延時巨集 local p1,p2 pusha mov dx,time mov ah,1 不等待 int 16h jz p1 沒有輸入zf 1 cmp ah,1 e...
組合語言程式設計第七章
一 and和or指令 and指令 邏輯與指令,按位進行與運算。通過該指令可以將操作物件的相應位設為0,其他位不變。or指令 邏輯或指令,按位進行或運算。通過該指令可以將操作物件的相應位設為1,其他位不變。二 關於ascii碼 三 以字元形式給出的資料 在匯程式設計序中,用 的形式指明資料是以字元的形...
組合語言 第七章實驗6
採用基址變址定址 bx si 採用棧,外層迴圈開始時,將cx入棧,內層迴圈開始時,改變cx的值,內層迴圈結束時,將棧中的值pop出,傳給cx。ascll 大寫 ascll 小寫 a 0100 0001 a 0110 0001 字母用八位二進位制數表示,大小寫的區別是第 位上 和 的區別。大寫字母 小...