Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

subject... assembly language,, If you know Assembly language,,,x86,,,,,,,,asm ,,

ID: 3845546 • Letter: S

Question

subject... assembly language,,

If you know Assembly language,,,x86,,,,,,,,asm ,,, then answer please,,,,


I have a question and i have the answer,,, but ineed tto evaluate my answer,,,,


question is:
Implement a simple 4 functios calculator for 3 digits entry.

The user will enter 2 digits for the first and the second numbers.

The user will chose between the operation type +,-,* or /

The result will be displayed.

Work with 32 bits variables and regist


use x86. asm

answer is:


con msg
        mov ah, 09h
        lea dx, msg
        int 21h
        endm

data segment
        buf1 db "Enter a decimal number : $"
        buf2 db 0ah, "Invalid Decimal Number...$"
        buf3 db 0ah, "Equivalent hexadecimal number is : $"
        buf4 db 6
             db 0
             db 6 dup(0)
        multiplier db 0ah
data ends

code segment
        assume cs:code, ds:data
start :
        mov ax, @data
        mov ds, ax
        mov es, ax

        con buf1

        mov ah, 0ah
        lea dx, buf4
        int 21h

        mov si, offset buf4 + 2
        mov cl, byte ptr [si-1]
        mov ch, 00h
subtract :
        mov al, byte ptr [si]
        cmp al, 30h
        jnb cont1
        con buf2
        jmp stop
cont1 :
        cmp al, 3ah
        jb cont2
        con buf2
        jmp stop
cont2 :
        sub al, 30h
        mov byte ptr [si], al

        inc si
        loop subtract

        mov si, offset buf4 + 2
        mov cl, byte ptr [si-1]
        mov ch, 00h
        mov ax, 0000h
calc :
        mul multiplier
        mov bl, byte ptr [si]
        mov bh, 00h
        add ax, bx
        inc si
        loop calc

        mov si, offset buf4 + 2
        mov bx, ax
        mov dx, 0000h
        mov ax, 1000h
convert :
        mov cx, 0000h
conv :
        cmp bx, ax
        jb cont3
        sub bx, ax
        inc cx
        jmp conv
cont3 :
        cmp cx, 0ah
        jb cont4
        add cl, 37h
        jmp cont5
cont4 :
        add cl, 30h
cont5 :
        mov byte ptr [si], cl
        inc si
        mov cx, 0010h
        div cx
        cmp ax, 0000h
        jnz convert

        mov byte ptr [si], '$'
        con buf3
        con buf4+2
stop :
        mov ax, 4c00h
        int 21h
code ends
        end start

**********************

new question is: Can someone please implement a calculator...... so the user can enter as many digits as they want for each number*******

take your time,,, no rush,,

i promise to give you thumbs up....

Please send me a copyable answer,,, with out put,,,, use ,,,,,,,,,,,,,,,,,,,, X86        asm

Explanation / Answer

section .data ; Messages mesg1 db n,'-Calculator-',n,0 lmesg1 equ $ - mesg1 mesg2 db n,'Number 1: ',0 lmesg2 equ $ - mesg2 mesg3 db 'Number 2: ',0 lmesg3 equ $ - mesg3 mesg4 db n,'1. Add',n,0 lmesg4 equ $ - mesg4 mesg5 db '2. Subtract',n,0 lmesg5 equ $ - mesg5 mesg6 db '3. Multiply',n,0 lmesg6 equ $ - mesg6 mesg7 db '4. Divide',n,0 lmesg7 equ $ - mesg7 mesg8 db 'Operation: ',0 lmesg8 equ $ - mesg8 mesg9 db n,'Result: ',0 lmesg9 equ $ - mesg9 mesg10 db n,'Invalid Option',n,0 lmesg10 equ $ - mesg10 section .bss