Как на Ассемблере сделать сложные условия?

на C эта конструкция выглядела бы так:
if(cmd=="a")
  getHelp();
else if(cmd=="b")
  openTextEditor();
else if(cmd=="c")
  reboot();


А как мне написать на assembler'е?(P.S. я использую FASM)
  • Вопрос задан
  • 937 просмотров
Решения вопроса 1
gbg
@gbg Куратор тега Программирование
Любые ответы на любые вопросы
cmp ax, 1
je :action1
cmp ax, 2
je :action2

;тут ребут

:action1:
тут вызов справки
jmp :done

:action2:
тут вызов редактора
jmp :done

:done
тут конец
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@none7
Если именно а,b,c, и не экономить каждый байт, то
cmp ax, 'a'
setb cl
cmp ax, 'c'
seta ch
or ch, cl
jne default
call [ax + jump_table - 'a']
default:
ret
jump_table dd getHelp, openTextEditor, reboot
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы