0

これは大学の課題なので、emu8086 を使用する必要があります。emu8086.incなし

私が持っているとしましょう

msg db "Hello"
msgend:
msglen1 equ $ - msg
msglen2 db $ - msg

それで:

mov ax, msgend - offset msg ; ax gets the correct length
mov ax, msglen1             ; correct length
mov ax, msglen2             ; correct length

; same names as offsets to make it clear, 
; how which parameters would be passed. 
; But not the same in real code.
TESTMACRO macro msg msgend msglen1 msglen2
    mov ax,    msg ; correct offset
    mov ax, msgend ; correct offset
    mov ax, msgend - offset msg ; zero length
    mov ax, msglen1             ; again zero length
    mov ax, msglen2             ; correct length, but it used up a word
endm

そう。単語に割り当てられた長さを渡すことを除いて、マクロ内で文字列の長さを渡すことはできません。しかし、equ定数でそれを行うことができれば、私は興味があります。

4

1 に答える 1