-3

次のような完全なプログラムを実アドレス モードで記述します。

  1. K と P の間の 1 文字の大文字をキーボードから読み取るようにユーザーに促します。
  2. 入力を検証し、文字が範囲内にない場合は、有効な文字が入力されるまでユーザーに何度もプロンプトを出します。
  3. 各辺に隣接する 5 文字を表示します。

たとえば、ユーザーが文字「M」を入力すると、出力は HIJKL M NOPQR になります。私はそれを解決しようとしますが、私の答えは間違っています

include irvine16.inc

.data
M1 byte "Enter one upper case letter between K and P : $"
letter byte 1,?,1

.code
main PROC
  mov ax, @data
  mov ds, ax

L1: mov ah,9 ;display msg m1
  lea dx,M1
  int 21h

mov ah,01h ;read a char
lea dx,letter
int 21h

mov bl,letter
CMP bl,'K'
Jb L1
CMP bl, 'P'
Ja L1


mov cx,5
lea si, letter
L3:
 dec si
loop L3

mov cx,11
lea si, letter
L2: sub si,5
  mov ah,05h
int 21h

LOOP L2



mov ah, 4ch
int 21h

main ENDP
END main
4

2 に答える 2