1091 lines
11 KiB
Plaintext
1091 lines
11 KiB
Plaintext
;
|
||
; Command & Conquer Red Alert(tm)
|
||
; Copyright 2025 Electronic Arts Inc.
|
||
;
|
||
; This program is free software: you can redistribute it and/or modify
|
||
; it under the terms of the GNU General Public License as published by
|
||
; the Free Software Foundation, either version 3 of the License, or
|
||
; (at your option) any later version.
|
||
;
|
||
; This program is distributed in the hope that it will be useful,
|
||
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
; GNU General Public License for more details.
|
||
;
|
||
; You should have received a copy of the GNU General Public License
|
||
; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||
;
|
||
|
||
;$e:\ifil\pcmacro.inc
|
||
;- 16-5-1991 at 10:55:13 by mike
|
||
;- 16-5-1991 at 08:30:30 by mike
|
||
;- 3-5-1991 at 15:39:52 by mike
|
||
|
||
|
||
SUBTTL PCMACRO.INC
|
||
.xlist
|
||
|
||
|
||
fmulscan_size MACRO e0,e1
|
||
IFDEF TANDY
|
||
.err
|
||
ENDIF
|
||
IFDEF CGA
|
||
.err
|
||
ENDIF
|
||
IFDEF EGA
|
||
m8 e0 ;; scan size = 40 for vga & ega
|
||
mov e1,e0
|
||
m4 e0
|
||
add e0,e1
|
||
ENDIF
|
||
ENDM
|
||
|
||
;.commo MACRO
|
||
; ENDM
|
||
|
||
;.commf MACRO
|
||
; ENDM
|
||
|
||
setpal MACRO e0
|
||
push si
|
||
mov si,OFFSET e0
|
||
call set_pallette
|
||
pop si
|
||
ENDM
|
||
|
||
|
||
|
||
|
||
|
||
|
||
waitvbl MACRO
|
||
call wait_vbl
|
||
ENDM
|
||
|
||
|
||
swapscr MACRO
|
||
call swap_scr
|
||
ENDM
|
||
|
||
setscad MACRO
|
||
IFDEF TANDY
|
||
mov ax,0b800h ;;setup screen address
|
||
ENDIF
|
||
IFDEF CGA
|
||
mov ax,0b800h
|
||
ENDIF
|
||
IFDEF EGA
|
||
push ds
|
||
mov ax,_DATA
|
||
mov ds,ax
|
||
mov ax,screen_seg
|
||
pop ds
|
||
ENDIF
|
||
mov es,ax
|
||
ENDM
|
||
|
||
reswordscr macro
|
||
stosw ;;movsw
|
||
endm
|
||
|
||
;; x y
|
||
getscreen MACRO e0,e1
|
||
IFIDN <e1>,<ax>
|
||
%out "CANT USED AX AS SECOND ARGUMENT"
|
||
.err
|
||
endif
|
||
|
||
IFIDN <e1>,<di>
|
||
%out "CANT USED DI AS SECOND ARGUMENT"
|
||
.err
|
||
endif
|
||
|
||
IFDIF <e1>,<di>
|
||
mov di,e1
|
||
endif
|
||
m2 di
|
||
mov di,screenvtb[di]
|
||
|
||
IFDIF <e0>,<ax>
|
||
mov ax,e0
|
||
endif
|
||
|
||
IFDEF EGA
|
||
di8 ax
|
||
ENDIF
|
||
IFDEF TANDY
|
||
shr ax,1
|
||
ENDIF
|
||
IFDEF CGA
|
||
shr ax,1
|
||
shr ax,1
|
||
shr ax,1
|
||
shr ax,1
|
||
ENDIF
|
||
add di,ax
|
||
IFDEF TANDY
|
||
and di,1fffh
|
||
ENDIF
|
||
ENDM
|
||
|
||
getscreen_no MACRO
|
||
mov ax,d1
|
||
sal ax,1
|
||
mov di,ax
|
||
mov ax,screenvtb[di]
|
||
mov di,ax
|
||
mov ax,scadd
|
||
add di,ax
|
||
mov ax,d0
|
||
IFDEF EGA
|
||
di8 ax
|
||
ENDIF
|
||
IFDEF TANDY
|
||
shr ax,1
|
||
ENDIF
|
||
IFDEF CGA
|
||
shr ax,1
|
||
shr ax,1
|
||
shr ax,1
|
||
shr ax,1
|
||
ENDIF
|
||
add di,ax
|
||
ENDM
|
||
|
||
|
||
|
||
|
||
|
||
|
||
mult macro e0,e1
|
||
if ( e1 EQ 2 )
|
||
m2 e0
|
||
exitm
|
||
endif
|
||
|
||
if ( e1 EQ 4 )
|
||
m4 e0
|
||
exitm
|
||
endif
|
||
|
||
if ( e1 EQ 8 )
|
||
m8 e0
|
||
exitm
|
||
endif
|
||
|
||
if ( e1 EQ 16 )
|
||
m16 e0
|
||
exitm
|
||
endif
|
||
|
||
%out "CANT USE THIS MACRO WITH THIS VALUE"
|
||
.err
|
||
endm
|
||
|
||
|
||
|
||
m2 macro e0
|
||
shl e0,1
|
||
endm
|
||
|
||
m4 macro e0
|
||
m2 e0
|
||
m2 e0
|
||
endm
|
||
|
||
m8 macro e0
|
||
m4 e0
|
||
m2 e0
|
||
endm
|
||
|
||
m16 macro e0
|
||
m8 e0
|
||
m2 e0
|
||
endm
|
||
|
||
m32 macro e0
|
||
m16 e0
|
||
m2 e0
|
||
endm
|
||
|
||
m64 macro e0
|
||
m32 e0
|
||
m2 e0
|
||
endm
|
||
|
||
m128 macro e0
|
||
m64 e0
|
||
m2 e0
|
||
endm
|
||
|
||
di2 macro e0
|
||
shr e0,1
|
||
endm
|
||
|
||
di4 macro e0
|
||
di2 e0
|
||
di2 e0
|
||
endm
|
||
|
||
di8 macro e0
|
||
di4 e0
|
||
di2 e0
|
||
endm
|
||
|
||
di16 macro e0
|
||
di8 e0
|
||
di2 e0
|
||
endm
|
||
|
||
di32 macro e0
|
||
di16 e0
|
||
di2 e0
|
||
endm
|
||
|
||
deca macro e0
|
||
mov ax,e0
|
||
dec ax
|
||
mov e0,ax
|
||
endm
|
||
|
||
decb macro e0
|
||
mov al,e0
|
||
dec al
|
||
mov e0,al
|
||
endm
|
||
|
||
inca macro e0
|
||
mov ax,e0
|
||
inc ax
|
||
mov e0,ax
|
||
endm
|
||
|
||
incb macro e0
|
||
mov al,e0
|
||
inc al
|
||
mov e0,al
|
||
endm
|
||
|
||
clrw macro e0
|
||
mov WORD PTR e0,0
|
||
endm
|
||
|
||
clrb macro e0
|
||
mov BYTE PTR e0,0
|
||
endm
|
||
|
||
clr macro e0
|
||
mov e0,0
|
||
endm
|
||
|
||
|
||
|
||
|
||
mova macro e1,e2
|
||
.ERRIDN <e1>,<WORD>
|
||
.ERRIDN <e1>,<BYTE>
|
||
.ERRIDN <e1>,<OFFSET>
|
||
.ERRIDN <e2>,<WORD>
|
||
.ERRIDN <e2>,<BYTE>
|
||
.ERRIDN <e2>,<OFFSET>
|
||
mov ax,e2
|
||
mov e1,ax
|
||
endm
|
||
|
||
movb macro e1,e2
|
||
.ERRIDN <e1>,<WORD>
|
||
.ERRIDN <e1>,<BYTE>
|
||
.ERRIDN <e1>,<OFFSET>
|
||
.ERRIDN <e2>,<WORD>
|
||
.ERRIDN <e2>,<BYTE>
|
||
.ERRIDN <e2>,<OFFSET>
|
||
mov al,e2
|
||
mov e1,al
|
||
endm
|
||
|
||
btstb macro e1,e2
|
||
IFIDN <e1>,<al>
|
||
test e1,1 SHL e2
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<ah>
|
||
test e1,1 SHL e2
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<bl>
|
||
test e1,1 SHL e2
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<bh>
|
||
test e1,1 SHL e2
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<cl>
|
||
test e1,1 SHL e2
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<ch>
|
||
test e1,1 SHL e2
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<dl>
|
||
test e1,1 SHL e2
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<dh>
|
||
test e1,1 SHL e2
|
||
EXITM
|
||
ENDIF
|
||
test BYTE PTR e1,1 SHL e2
|
||
endm
|
||
|
||
|
||
|
||
saveall macro
|
||
save ax,bx,cx,dx,bp,si,di,es,ds
|
||
endm
|
||
|
||
restall macro
|
||
restore ax,bx,cx,dx,bp,si,di,es,ds
|
||
endm
|
||
|
||
save macro r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14
|
||
IFNB <r0>
|
||
push r0
|
||
save r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14
|
||
ENDIF
|
||
endm
|
||
|
||
restore macro r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14
|
||
IFNB <r14>
|
||
pop r14
|
||
ENDIF
|
||
IFNB <r13>
|
||
pop r13
|
||
ENDIF
|
||
IFNB <r12>
|
||
pop r12
|
||
ENDIF
|
||
IFNB <r11>
|
||
pop r11
|
||
ENDIF
|
||
IFNB <r10>
|
||
pop r10
|
||
ENDIF
|
||
IFNB <r9>
|
||
pop r9
|
||
ENDIF
|
||
IFNB <r8>
|
||
pop r8
|
||
ENDIF
|
||
IFNB <r7>
|
||
pop r7
|
||
ENDIF
|
||
IFNB <r6>
|
||
pop r6
|
||
ENDIF
|
||
IFNB <r5>
|
||
pop r5
|
||
ENDIF
|
||
IFNB <r4>
|
||
pop r4
|
||
ENDIF
|
||
IFNB <r3>
|
||
pop r3
|
||
ENDIF
|
||
IFNB <r2>
|
||
pop r2
|
||
ENDIF
|
||
IFNB <r1>
|
||
pop r1
|
||
ENDIF
|
||
IFNB <r0>
|
||
pop r0
|
||
ENDIF
|
||
endm
|
||
|
||
bhi macro lab
|
||
ja lab
|
||
endm
|
||
|
||
bls macro lab
|
||
jbe lab
|
||
endm
|
||
|
||
bcc macro lab
|
||
jnc lab
|
||
endm
|
||
|
||
bcs macro lab
|
||
jc lab
|
||
endm
|
||
|
||
bhs macro lab
|
||
jnc lab
|
||
endm
|
||
|
||
blo macro lab
|
||
jc lab
|
||
endm
|
||
|
||
bne macro lab
|
||
jne lab
|
||
endm
|
||
|
||
beq macro lab
|
||
je lab
|
||
endm
|
||
|
||
bpl macro lab
|
||
jns lab
|
||
endm
|
||
|
||
bmi macro lab
|
||
js lab
|
||
endm
|
||
|
||
bge macro lab
|
||
jge lab
|
||
endm
|
||
|
||
blt macro lab
|
||
jl lab
|
||
endm
|
||
|
||
bgt macro lab
|
||
jg lab
|
||
endm
|
||
|
||
ble macro lab
|
||
jle lab
|
||
endm
|
||
|
||
bra macro lab
|
||
jmp lab
|
||
endm
|
||
|
||
|
||
bhis macro lab
|
||
ja lab
|
||
endm
|
||
|
||
blss macro lab
|
||
jbe lab
|
||
endm
|
||
|
||
bccs macro lab
|
||
jnc lab
|
||
endm
|
||
|
||
bcss macro lab
|
||
jc lab
|
||
endm
|
||
|
||
bnes macro lab
|
||
jne lab
|
||
endm
|
||
|
||
beqs macro lab
|
||
je lab
|
||
endm
|
||
|
||
bpls macro lab
|
||
jns lab
|
||
endm
|
||
|
||
bmis macro lab
|
||
js lab
|
||
endm
|
||
|
||
bges macro lab
|
||
jge lab
|
||
endm
|
||
|
||
blts macro lab
|
||
jl lab
|
||
endm
|
||
|
||
bgts macro lab
|
||
jg lab
|
||
endm
|
||
|
||
bles macro lab
|
||
jle lab
|
||
endm
|
||
|
||
bras macro lab
|
||
jmp lab
|
||
endm
|
||
|
||
|
||
tstb macro e1
|
||
|
||
IFIDN <e1>,<al>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<bp>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<ah>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<bl>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<bh>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<cl>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<ch>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<dl>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<dh>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
cmp BYTE PTR e1,0
|
||
endm
|
||
|
||
|
||
tstw macro e1
|
||
IFIDN <e1>,<ax>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<bx>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<cx>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<dx>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
|
||
IFIDN <e1>,<bp>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
|
||
IFIDN <e1>,<si>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
|
||
IFIDN <e1>,<di>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
cmp WORD PTR e1,0
|
||
endm
|
||
|
||
|
||
|
||
tst macro e1
|
||
IFIDN <e1>,<ax>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<bx>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<cx>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<dx>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
|
||
IFIDN <e1>,<bp>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
|
||
IFIDN <e1>,<si>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
|
||
IFIDN <e1>,<di>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
|
||
IFIDN <e1>,<al>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<bl>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<cl>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<dl>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
|
||
IFIDN <e1>,<ah>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<bh>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<ch>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<dh>
|
||
or e1,e1
|
||
EXITM
|
||
ENDIF
|
||
|
||
cmp e1,0
|
||
endm
|
||
|
||
|
||
clear macro first
|
||
xor first,first
|
||
endm
|
||
|
||
rts macro
|
||
ret
|
||
endm
|
||
|
||
|
||
bclrb macro e1,e2
|
||
btstb e1,e2
|
||
pushf
|
||
|
||
bclrb_sub e1,e2
|
||
popf
|
||
endm
|
||
|
||
bclrb_sub macro e1,e2
|
||
IFIDN <e1>,<al>
|
||
and e1,NOT ( 1 SHL e2 )
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<bp>
|
||
and e1,NOT ( 1 SHL e2 )
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<ah>
|
||
and e1,NOT ( 1 SHL e2 )
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<bl>
|
||
and e1,NOT ( 1 SHL e2 )
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<bh>
|
||
and e1,NOT ( 1 SHL e2 )
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<cl>
|
||
and e1,NOT ( 1 SHL e2 )
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<ch>
|
||
and e1,NOT ( 1 SHL e2 )
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<dl>
|
||
and e1,NOT ( 1 SHL e2 )
|
||
EXITM
|
||
ENDIF
|
||
IFIDN <e1>,<dh>
|
||
and e1,NOT ( 1 SHL e2 )
|
||
EXITM
|
||
ENDIF
|
||
and BYTE PTR e1,NOT ( 1 SHL e2 )
|
||
endm
|
||
|
||
|
||
|
||
bsetb macro e1,e2
|
||
btstb e1,e2
|
||
pushf
|
||
or BYTE PTR e1,1 SHL e2
|
||
popf
|
||
endm
|
||
|
||
|
||
bchgb macro e1,e2
|
||
btstb e1,e2
|
||
pushf
|
||
xor BYTE PTR e1,1 SHL e2
|
||
popf
|
||
endm
|
||
|
||
|
||
|
||
mov_b macro label,label2
|
||
mov byte ptr label,byte ptr label2
|
||
endm
|
||
|
||
|
||
|
||
mov_w macro label,label2
|
||
mov word ptr label,word ptr label2
|
||
endm
|
||
|
||
|
||
|
||
mov_d macro label,label2
|
||
mov dword ptr label,dword ptr label2
|
||
endm
|
||
|
||
|
||
cmp_b macro label,label2
|
||
cmp byte ptr label,byte ptr label2
|
||
endm
|
||
|
||
cmp_w macro label,label2
|
||
cmp word ptr label,word ptr label2
|
||
endm
|
||
|
||
cmp_d macro label,label2
|
||
cmp dword ptr label,dword ptr label2
|
||
endm
|
||
|
||
|
||
|
||
add_b macro label,label2
|
||
add byte ptr label,byte ptr label2
|
||
endm
|
||
|
||
add_w macro label,label2
|
||
add word ptr label,word ptr label2
|
||
endm
|
||
|
||
add_d macro label,label2
|
||
add dword ptr label,dword ptr label2
|
||
endm
|
||
|
||
|
||
|
||
sub_b macro label,label2
|
||
sub byte ptr label,byte ptr label2
|
||
endm
|
||
|
||
sub_w macro label,label2
|
||
sub word ptr label,word ptr label2
|
||
endm
|
||
|
||
sub_d macro label,label2
|
||
sub dword ptr label,dword ptr label2
|
||
endm
|
||
|
||
|
||
|
||
|
||
|
||
or_b macro label,label2
|
||
or byte ptr label,byte ptr label2
|
||
endm
|
||
|
||
or_w macro label,label2
|
||
or word ptr label,word ptr label2
|
||
endm
|
||
|
||
or_d macro label,label2
|
||
or dword ptr label,dword ptr label2
|
||
endm
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
xor_b macro label,label2
|
||
xor byte ptr label,byte ptr label2
|
||
endm
|
||
|
||
xor_w macro label,label2
|
||
xor word ptr label,word ptr label2
|
||
endm
|
||
|
||
xor_d macro label,label2
|
||
xor dword ptr label,dword ptr label2
|
||
endm
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
eor_b macro label,label2
|
||
xor byte ptr label,byte ptr label2
|
||
endm
|
||
|
||
eor_w macro label,label2
|
||
xor word ptr label,word ptr label2
|
||
endm
|
||
|
||
eor_d macro label,label2
|
||
xor dword ptr label,dword ptr label2
|
||
endm
|
||
|
||
|
||
|
||
|
||
and_b macro label,label2
|
||
and byte ptr label,byte ptr label2
|
||
endm
|
||
|
||
and_w macro label,label2
|
||
and word ptr label,word ptr label2
|
||
endm
|
||
|
||
and_d macro label,label2
|
||
and dword ptr label,dword ptr label2
|
||
endm
|
||
|
||
|
||
|
||
|
||
|
||
test_b macro label,label2
|
||
test byte ptr label,byte ptr label2
|
||
endm
|
||
|
||
test_w macro label,label2
|
||
test word ptr label,word ptr label2
|
||
endm
|
||
|
||
test_d macro label,label2
|
||
test dword ptr label,dword ptr label2
|
||
endm
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
shr_b macro label,label2
|
||
shr byte ptr label,label2
|
||
endm
|
||
|
||
shr_w macro label,label2
|
||
shr word ptr label,label2
|
||
endm
|
||
|
||
shr_d macro label,label2
|
||
shr dword ptr label,label2
|
||
endm
|
||
|
||
|
||
|
||
shl_b macro label,label2
|
||
shl byte ptr label,label2
|
||
endm
|
||
|
||
shl_w macro label,label2
|
||
shl word ptr label,label2
|
||
endm
|
||
|
||
shl_d macro label,label2
|
||
shl dword ptr label,label2
|
||
endm
|
||
|
||
|
||
|
||
|
||
sar_b macro label,label2
|
||
sar byte ptr label,label2
|
||
endm
|
||
|
||
sar_w macro label,label2
|
||
sar word ptr label,label2
|
||
endm
|
||
|
||
sar_d macro label,label2
|
||
sar dword ptr label,label2
|
||
endm
|
||
|
||
|
||
|
||
|
||
|
||
sal_b macro label,label2
|
||
sal byte ptr label,label2
|
||
endm
|
||
|
||
sal_w macro label,label2
|
||
sal word ptr label,label2
|
||
endm
|
||
|
||
sal_d macro label,label2
|
||
sal dword ptr label,label2
|
||
endm
|
||
|
||
|
||
|
||
inc_b macro label
|
||
inc byte ptr label
|
||
endm
|
||
|
||
inc_w macro label
|
||
inc word ptr label
|
||
endm
|
||
|
||
inc_d macro label
|
||
inc dword ptr label
|
||
endm
|
||
|
||
|
||
|
||
|
||
dec_b macro label
|
||
dec byte ptr label
|
||
endm
|
||
|
||
dec_w macro label
|
||
dec word ptr label
|
||
endm
|
||
|
||
dec_d macro label
|
||
dec dword ptr label
|
||
endm
|
||
|
||
|
||
|
||
|
||
|
||
movzx_b macro label,label2
|
||
movzx label,byte ptr label2
|
||
endm
|
||
|
||
|
||
movzx_w macro label,label2
|
||
movzx label,word ptr label2
|
||
endm
|
||
|
||
|
||
movsx_b macro label,label2
|
||
movsx label,byte ptr label2
|
||
endm
|
||
|
||
|
||
movsx_w macro label,label2
|
||
movsx label,word ptr label2
|
||
endm
|
||
|
||
|
||
|
||
|
||
mul_b macro label
|
||
mul byte ptr label
|
||
endm
|
||
|
||
|
||
mul_w macro label
|
||
mul word ptr label
|
||
endm
|
||
|
||
|
||
div_b macro label
|
||
div byte ptr label
|
||
endm
|
||
|
||
|
||
div_w macro label
|
||
div word ptr label
|
||
endm
|
||
|
||
|
||
idiv_b macro label
|
||
idiv byte ptr label
|
||
endm
|
||
|
||
|
||
idiv_w macro label
|
||
idiv word ptr label
|
||
endm
|
||
|
||
|
||
|
||
|
||
tst_b macro label
|
||
cmp byte ptr label,0
|
||
endm
|
||
|
||
tst_w macro label
|
||
cmp word ptr label,0
|
||
endm
|
||
|
||
tst_d macro label
|
||
cmp dword ptr label,0
|
||
endm
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
not_b macro label
|
||
not byte ptr label
|
||
endm
|
||
|
||
not_w macro label
|
||
not word ptr label
|
||
endm
|
||
|
||
not_d macro label
|
||
not dword ptr label
|
||
endm
|
||
|
||
|
||
|
||
|
||
neg_b macro label
|
||
neg byte ptr label
|
||
endm
|
||
|
||
neg_w macro label
|
||
neg word ptr label
|
||
endm
|
||
|
||
neg_d macro label
|
||
neg dword ptr label
|
||
endm
|
||
|
||
|
||
|
||
|
||
|
||
.list
|
||
|
||
|
||
|