PDA

View Full Version : شبيه سازي if در اسمبلي



ssbostan
یک شنبه 21 خرداد 1391, 20: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 -------------------------


موفق باشید.

ssbostan
پنج شنبه 05 تیر 1393, 22:11 عصر
باسلام،
تاپیک با کد بهینه شده بروز شد.

موفق باشید.