org 100h
.MODEL SMALL
.STACK 200
.DATA
crlf DB 0dh,0ah,"$"
prompt1 DB "Enter celcius:","$"
prompt2 DB "In Fahrenheit:","$"
prompt3 DB ".","$"
result DB ?
c DB ?
x1 Dw ?
y DW 8
x DW 1
z dw 10
.code
.startup
lea dx,prompt1
mov ah,09h
int 21h
mov ah,01h
int 21h
sub al,30h
mov c,al
lea dx,crlf
mov ah,09h
int 21h
mov al,c
mul x
mov x1,ax
mov al,c
mul y
idiv z
add al,c
add al,32
mov result,al
lea dx,prompt2
mov ah,09h
int 21h
mov dl,result
add ah,02h
int 21h
.exit
end
但它只接受1个字符我需要它至少4个字符,而且这段代码没有显示结果。
答案 0 :(得分:1)
DOS函数1(int 21h)仅输入键盘中的单个字符。你需要函数0Ah,它是缓冲输入。
Buffered Keyboard Input
AH = 0Ah
DS:DX = pointer to input buffer of the format:
max count BUFFER (N bytes)
count = number of characters returned (byte)
max = maximum number of characters to read (byte)
returns nothing
- N bytes of data are read from STDIN into buffer+2