-1

私はこの場所と集会に不慣れで、大いに役立つ質問をしたいと思います。私はコードをもっている:

mov dx, 200
mov ah, 0A
int 21
mov bh, 00
mov bl, byte ptr [201]
mov byte ptr[200], 0D
mov byte ptr[201], 0A
mov byte ptr[202 + bx], 24
mov dx, 200
mov ah, 09
int 21
mov ah, 4c
int 21

これは、キーボードで入力したものを正確に示していますが、6つの数字のみです。最大 8 まで入力できるようにする必要があります。私が理解している限り、バイト ptr からワードに変更する必要がありますが、その方法がわかりません。やり方と理由を教えてください。私は感謝されます。

4

1 に答える 1

0

stdin (int 21h, ah=0a) から文字列を読み取る場合、ds:dx は文字列を格納する有効なバッファを指している必要があります。ただし、このバッファには特定の形式があります。

 offset | content
--------+----------
      0 | maximum string length
      1 | will contain number of characters read
      2 | will contain the string

基本的に、必要な文字数を指定する必要があります(最大):

mov byte ptr[200], 8
mov dx, 200
mov ah, 0A
int 21

byte ptr と word ptr (および dword ptr も) は、CPU がメモリからロードするバイト数を指定するため、これとは関係ありません。

ここを参照してください。

于 2013-09-17T21:55:02.777 に答える