私は次のasmコード(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
ただし、ゼロ命令が期待どおりに機能していない(期待されている)場合のジャンプ、つまりjz01h。
newLineサブルーチンの呼び出しを飛び越えるために、相対1命令をジャンプ(またはIPに1つ追加)したいと思います。
現在、エンターキーを押してjz命令が呼び出されると、プログラムの早い段階でコードが実行されるため、プログラムは絶対的にジャンプしていると思います。
何か案は?
ありがとう、スティーブ