MASM汇编语言(x86)宏(CBW,LOOP,PTR)

时间:2014-09-09 15:00:26

标签: loops pointers macros masm

假设您的汇编程序没有CBW,LOOP和PTR操作,您如何为每个论文设计一个宏?

示例:

    MCBW macro
    move AX,0
    div AX,CH
    endm

1 个答案:

答案 0 :(得分:0)

循环宏:

;//---------------------------------------------------------------------------
myLoop MACRO myLabel:REQ
;//---------------------------------------------------------------------------

    dec ecx
    jnz myLabel

ENDM
在proc示例中

mov ecx, 5
mov eax, 0
ANY_LOOP:
   inc eax
myLoop ANY_LOOP

CBW宏:

;//---------------------------------------------------------------------------
myCBW MACRO
;//---------------------------------------------------------------------------
    mov ebx, eax
    and eax, 080h
    shl ax, 1
    xchg ah, al
    mov ecx, 0FFFFh
    mul ecx
    mov al, bl

ENDM
在proc示例中

mov eax, 8Fh
myCBW

PTR宏:

;//---------------------------------------------------------------------------
myPointer MACRO source:REQ
;//---------------------------------------------------------------------------
    exitm <[source]>

ENDM
在proc示例中

.data
    number  DWORD 5

.code
    main PROC

    mov eax, myPointer(number)