今日の試験でこの質問を受けて、そのためのコードを書きました。どこがうまくいかなかったのか教えてください。
問題:8086マイクロプロセッサの場合、次のタスクを実行するコードを記述します。ユーザーにデータの入力を求め、キーの押下をカウントします。ALPの
実行時に、最初のメッセージが取得されます。「キーの押下をカウントし、エスケープを押して停止します。」(引用符なし)、ユーザーがエスケープを入力すると、2番目のメッセージ「countingkeypresses」が表示され、カウントの結果がBXに格納され、バイナリで表示されます。(データ入力中に)押されたキーも、入力キーは次の行にエコーされます。
解決策:(私が書いた)
.model tiny
.data
text1 db "counting keypresses,press escape to stop $"
text2 db "counting keypresses"
.code
.startup
mov dx,offset text1 ;displaying text1 (i guess so)
mov ah,09h
int 21h
and bx,00h
label1 mov ah,01h ;(getting input from user and incrementing bx on every click)
int 21h
inc bx
cmp al,1bh ;comparing with 'escape'
np label1
mov dx,offset text2 ;if zero then do this i.e display text2
mov ah,09h
int 21h
mov dx,offset bx ;display bx
mov ah,09h
int 21h
.exit
end
追加したコメントが適切かどうかわかりません。私のコードは正しくないことはわかっていますが、実際にはまったく正しくありませんが、私は一晩の準備に基づいてこれを書くことができました。 。次の試験で本当に上手くいく必要があるからです。