ssbostan
یک شنبه 21 خرداد 1391, 21:13 عصر
باسلام؛
به وسیله این ماکرو میتونید دستور if رو شبیه سازی و استفاده کنید.
if op1 cond op2 true false
تاپیک با کد بهینه شده بروز شد.
; ------------------------- if.asm -------------------------
;
; File: if.asm
; Author: ssbostan@gmail.com
;
; Created on June 26, 2014, 22:21 PM
;
; ------------------------- if.asm -------------------------
LSS equ 0 ; less.
LOE equ 1 ; less or equal.
EQL equ 2 ; equal.
MOE equ 3 ; more or equal.
MOR equ 4 ; more.
if macro op1, cond, op2, true, false
local if_that, if_less, if_more
local if_aless, if_nless
local if_amore, if_nmore
push ax
mov al, cond
cmp al, 2
je if_that
jb if_less
ja if_more
if_that:
mov ax, op1
cmp ax, op2
pop ax
je true
jmp false
if_less:
cmp al, 0
je if_aless
jmp if_nless
if_aless:
mov ax, op1
cmp ax, op2
pop ax
jl true
jmp false
if_nless:
mov ax, op1
cmp ax, op2
pop ax
jng true
jmp false
if_more:
cmp al, 4
je if_amore
jmp if_nmore
if_amore:
mov ax, op1
cmp ax, op2
pop ax
jg true
jmp false
if_nmore:
mov ax, op1
cmp ax, op2
pop ax
jnl true
jmp false
endm
; ------------------------- if.asm -------------------------
موفق باشید.
به وسیله این ماکرو میتونید دستور if رو شبیه سازی و استفاده کنید.
if op1 cond op2 true false
تاپیک با کد بهینه شده بروز شد.
; ------------------------- if.asm -------------------------
;
; File: if.asm
; Author: ssbostan@gmail.com
;
; Created on June 26, 2014, 22:21 PM
;
; ------------------------- if.asm -------------------------
LSS equ 0 ; less.
LOE equ 1 ; less or equal.
EQL equ 2 ; equal.
MOE equ 3 ; more or equal.
MOR equ 4 ; more.
if macro op1, cond, op2, true, false
local if_that, if_less, if_more
local if_aless, if_nless
local if_amore, if_nmore
push ax
mov al, cond
cmp al, 2
je if_that
jb if_less
ja if_more
if_that:
mov ax, op1
cmp ax, op2
pop ax
je true
jmp false
if_less:
cmp al, 0
je if_aless
jmp if_nless
if_aless:
mov ax, op1
cmp ax, op2
pop ax
jl true
jmp false
if_nless:
mov ax, op1
cmp ax, op2
pop ax
jng true
jmp false
if_more:
cmp al, 4
je if_amore
jmp if_nmore
if_amore:
mov ax, op1
cmp ax, op2
pop ax
jg true
jmp false
if_nmore:
mov ax, op1
cmp ax, op2
pop ax
jnl true
jmp false
endm
; ------------------------- if.asm -------------------------
موفق باشید.