The result of my assembly language code is 0 and there’s an error on division

I tried to make calculator using assembly language, here is my code:

.model small
.stack 100h

.data
greeting db ‘WELCOME TO YOUR CALCULATOR’, 0Dh, 0Ah, ‘$’
menu db ‘1 – ADDITION’, 0Dh, 0Ah, ‘2 – SUBTRACTION’, 0Dh, 0Ah, ‘3 – MULTIPLICATION’, 0Dh, 0Ah, ‘4 – DIVISION’, 0Dh, 0Ah, ‘$’
choicePrompt db ‘Enter your choice: $’
prompt1 db ‘Enter 1st Number: $’
prompt2 db ‘Enter 2nd Number: $’
resultMsg db ‘The result is: $’
buffer db 6, 0, 5 dup(0) ; Buffer to store input (max 5 digits)
userChoice db 0
num1 dw 0
num2 dw 0
result dw 0

.code
main proc
mov ax, @data
mov ds, ax

; Print the greeting and menu
lea dx, greeting
mov ah, 09h
int 21h

lea dx, menu
mov ah, 09h
int 21h

; Print choice prompt
lea dx, choicePrompt
mov ah, 09h
int 21h

; Read user's choice
mov ah, 01h
int 21h
sub al, '0'
mov userChoice, al
call getch

; Print newline
call printNewline

; Print prompt1 and read first number
lea dx, prompt1
mov ah, 09h
int 21h
call readNumber
mov num1, ax

call printNewline

; Print prompt2 and read second number
lea dx, prompt2
mov ah, 09h
int 21h
call readNumber
mov num2, ax

; Perform the chosen operation
mov ax, num1
mov bx, num2
cmp userChoice, 1
je additionOp
cmp userChoice, 2
je subtractionOp
cmp userChoice, 3
je multiplicationOp
cmp userChoice, 4
je divisionOp
jmp endProgram

additionOp:
add ax, bx
mov result, ax ; Store the result
jmp displayResult

subtractionOp:
sub ax, bx
mov result, ax ; Store the result
jmp displayResult

multiplicationOp:
mul bx
mov result, ax ; Store the result
jmp displayResult

divisionOp:
xor dx, dx
div bx
mov result, ax ; Store the result
jmp displayResult

displayResult:
; Print the result message
lea dx, resultMsg
mov ah, 09h
int 21h

; Print the actual result
mov ax, result
call printNumber

; Print a newline
call printNewline

ret

endProgram:
mov ah, 4Ch
int 21h

main endp

getch proc
mov ah, 07h
int 21h
ret
getch endp

readNumber proc
lea dx, buffer
mov ah, 0Ah
int 21h

lea si, buffer + 2
mov ax, 0
mov cx, 0

convertLoop:
lodsb
cmp al, 0Dh
je endConvert
sub al, ‘0’
mov bx, 10
mul cx
add cx, ax
jmp convertLoop

endConvert:
mov ax, cx
ret
readNumber endp

printNewline proc
mov ah, 02h
mov dl, 0Dh
int 21h
mov dl, 0Ah
int 21h
ret
printNewline endp

printNumber proc
mov bx, 10
xor cx, cx

convertLoop2:
xor dx, dx
div bx
add dl, ‘0’
push dx
inc cx
cmp ax, 0
jne convertLoop2

printLoop:
pop dx
mov ah, 02h
int 21h
loop printLoop

ret

printNumber endp

end main

The menu is ok but when it prints the result it only shows 0 as the results in add, sub, and mul but when I tried the division it shows “divide error – overflow” and it doesn’t show the resut. I’m only a beginner so please help.

New contributor

Gigi20 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật