Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > команда условного перехода


Автор: Dreamuchiy 30.4.2011, 01:13
Ребята не могу сообразить. В общем надо краткий переход по условию: если x=>y (переход туда то ) или если x>y (переход туда то) всеравно или аналогично наоборот если x<=y (переход туда то) или если x<y (перехед туда то )

в конкретном случае если на словах то проверка AL и если AL не более 9 то прибавляется 48, в противном случае прибавляется 65 (это тупо преобразование значения младшей половинки байта в код acsll или как его там)

JC ИЛИ JNC ? или еще что? я плохо еще знаю асм под x86 знаю. Ранее и очень давно под z80 что то пробовал писать.

Заранее спасибо за помощь !

Автор: Mikl_ 30.4.2011, 06:54
Dreamuchiy, команды JC (переход если ПЕРЕНОС), JB (переход если МЕНЬШЕ) и JNAE (переход если НЕБОЛЬШЕ и НЕРАВНО) синонимы и соответствуют команде с кодировкой 72XXh. Команды JNC (переход если НЕТ ПЕРЕНОСА), JNB (переход если НЕМЕНЬШЕ) и JAE (переход если БОЛЬШЕ или РАВНО) также синонимы и соответствуют команде с кодировкой 73XXh, но прямо противоположны по смыслу команде JC/JB/JNAE. smile 
Код
   CMP AL,9
   JA A1
   ADD AL,48
   JMP A2
A1: ADD AL,65
A2: . . .

Автор: Игорь1024 30.4.2011, 12:33
Dreamuchiy, вот тебе сайтец с полным описанием команд. Особо удобно там расположены условники http://faydoc.tripod.com/cpu/

Автор: Dreamuchiy 30.4.2011, 22:39
Спасибо ребята !

Автор: xRom2 10.5.2011, 20:22
Цитата(Dreamuchiy @ 30.4.2011,  01:13)
JC ИЛИ JNC ? или еще что? я плохо еще знаю асм под x86 знаю. Ранее и очень давно под z80 что то пробовал писать.
Заранее спасибо за помощь !

Запомни 4 слова: above, below, less, greate, то есть больше/меньше для беззнаковых и знаковых сравнений и соответствующие им команды: ja/jna jb/jnb jl/jnl jg/jng ну про zero думаю и так понятно что jz/jnz Этого достаточно. Но я бы сравнениями не увлекался, а завел в памяти переменную
_digit db '0123456789ABCDEF'
и пользовался бы xlatb

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)