Перейти, если ноль относительно 1

У меня есть следующий ассемблерный код (x86).

.input:
mov ah, 00h         ; get key from keyboard buffer
int 16h         ; interrupt 16h 
mov dl, al      ; move ASCII code into dl
mov ah, 02h     ; function 02
int 21h         ; interrupt 21h
mov ah, 0Eh     ; tell the BIOS to print the character in the AL register
mov al, dl      ; copy dl into al
int 10h         ; print al
sub al,0Dh      ; check if it's carriage return
jz 01h          ; jump relative 1 (to skip newLine)
call newLine        ; add CR LF
jmp .input      ; loop

Однако инструкция перехода при нулевом значении не работает должным образом (надеялись), т. е. jz 01h.

Я хотел бы перейти на 1 относительную инструкцию (или добавить ее к IP), чтобы перепрыгнуть вызов подпрограммы newLine.

В настоящее время, когда я нажимаю клавишу ввода и вызывается инструкция jz, я полагаю, что программа совершает абсолютный скачок, поскольку фрагмент кода в начале программы запускается.

Есть идеи?

Спасибо, Стив

0
задан Steve 12 April 2012 в 16:42
поделиться