I am trying to input two numbers from user in assembly language using Irvine32 library but don't know how. This is what I have so far:
INCLUDE Irvine32.inc
.data
number1 WORD
number2 WORD
.code
main PROC
exit
main ENDP
END main
I am trying to input two numbers from user in assembly language using Irvine32 library but don't know how. This is what I have so far:
INCLUDE Irvine32.inc
.data
number1 WORD
number2 WORD
.code
main PROC
exit
main ENDP
END main
 
    
     
    
    i'm not familiar with irvine, but how about writing the input and decode routine yourself?
DOS int 21/a reads a line from stdin, and put's it to your buffer
the decoding from ascii to register is a but more tricky; you have to walk thoug each digit and add them one by one, by shifting the curent value
here's an approach, just to have an idea: (sorry for syntax, max be incompatible to masm, I still use Eric Isaacson's A86 assembler)
.org 0100
JMP start
buffer: db 10,"          "  ; space for 10 digits
; read input to buffer
input:  mov ah, 0ah         ; input value
        mov dx, buffer
        int 21h
        ret
; decode buffer to CX
decode: mov dx,0
        mov si, buffer+2
        mov cl, [buffer+1]    ; while (numChars>0)
decLoop: cmp cl,0
        je decEnd
        mov ax, dx          ; mul DX by 10
        shl ax, 2
        add ax, dx
        shl ax, 1
        mov dx, ax
        mov al,[si]        ; get current digit
        inc si             ; and point to next one
        sub al,'0'
        mov ah, 0
        add dx, ax          ; add the digit read
        dec cl              ; numChars--
        jmp decLoop
decEnd: ret
; main()
start:  call input
        call decode
        push dx
        call input
        call decode
        pop cx
        ; CX now holds first, DX second number
        ; feel free to do with em what you feel like
        int 20h             ; quit
