文字列を受け取り、文字列を表示するアセンブリコードがあります。アセンブリコードで文字列を表示する
私の問題は、ユーザーからの入力を保存するためにbuffを使用しているので、名前がどのくらい正確に格納されているのか分かりません。
私は
buff label byte
maxchar db 50
readchar db 0
name1 db 48 dup(0)
はこれとは何かを持っていることを知っています。しかし、私は仕事を理解することができません。
.model small
.stack
.data
buff label byte
maxchar db 50
readchar db 0
name1 db 48 dup(0)
m1 db 10,13,"enter name: $"
m2 db 10,13,"your name is: $"
.code
mov ax, @data
mov ds, ax
lea dx, m1
mov ah, 09
int 21h
lea dx, buff
mov ah, 10
int 21h
mov ah,0
mov al, readchar
add ax, 2
mov si, al
mov buff[si],24H ;ascii code for $ to terminate string
lea dx, m2
mov ah, 9
int 21h
lea dx, name1
mov ah, 09
int 21h
mov ah, 4ch
int 21h
end
助けてください!
ありがとうございました。
また、おそらく 'mov si、ax'ではなく、' mov si、al'であるべきです。 'movsx'と' movzx'だけが8ビットのレジスタ値を16ビットのレジスタに移動することができます、 'mov'はできません。 –
ありがとうたくさん:)私の疑問を解決した! –