Меня смущает сравнение и прыжки в сборке

Я хочу ввести

11,00,01,10 in ebx and eax register.

Everytime i input 01 or 10 i need to jump at l1.

And if i input 11 or 00 i want to quit from the procedure.

Как я могу это сделать. Я пробовал, но только первые два cmp работают, остальные не работают.

    cmp ebx, 0
    cmp eax, 0
    Je L1

    cmp ebx,1
    cmp eax,0
        JMP Quit

    cmp ebx, 1
    camp eax, 1
    jmp quit2

l1: mov edx, смещение num3
    вызов
    позвонить по телефону
    MOV EDX, смещение NUM2
    вызов
    позвонить теленку

1 ответ

Решение
  1. Ты уверен насчет "jmp"? не должно ли это быть 'Je'?
  2. Насколько я знаю, сохраняется только последний результат cmp. Поэтому, если вы напишете две последовательные команды cmp, первая не будет иметь никакого эффекта. Вы должны проверить результат сразу после любой команды cmp.
  3. Если вы прыгаете сразу после проверки случая 10, вы никогда не сможете проверить случай 11.
Другие вопросы по тегам