0

I have a problem...I don' know why this code doesn't work...can anyone help me ? PLZZZ

.MODEL SMALL
.STACK 100H
.DATA
prompt_msg1 DB 'Please input the first number: ',0
prompt_msg2 DB 'Please input the second number: ',0
sum_msg DB 'The sum is ',0

.CODE

main PROC
.STARTUP
mov ah,02
mov dl,prompt_msg1
int 21h ; request first number
mov CX,08
int 21h ; CX := first number
mov ah,02
mov dl,prompt_msg2
int 21h
mov DX,08
int 21h
mov AX,CX
add AX,DX
mov ah,02
mov dl,sum_msg
int 21h ; returns sum in AX ; display sum
mov AX,08
int 21h

.EXIT
main ENDP
end

2
Contributors
4
Replies
5
Views
10 Years
Discussion Span
Last Post by manu1987
0

int function 08 will read just one key from the input keyboard and wait if no key is available. So if I type "12 <Enter>" that is three keys -- '1', '2', and <Enter>. If you want the user to type more than one key then you need to write a short keyboard handling function that will put all the keys into a buffer or immediately convert it to an integer so that the result can be returned to the function that called it.

0

Pseudocode for keyboard input: when loop finished cx contains the integer

clear cx integer
start of loop
get key from keyboard
is key <Enter>
if yes, exit loop
add key to cx then subtract '0' (decimal 48)
jump back to top of loop

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.