hi there. i posted the code below. can anyone give to me for line by line explai
ID: 3838802 • Letter: H
Question
hi there. i posted the code below. can anyone give to me for line by line explain. which line works for what ? thanks
page 55,80
.model small
.stack 100h
.386
.data
msg1 db 0DH,0AH,"Enter any base from 2 to 35 ","$" ;
num2 dd ?
num1 dd ?
count db 0
num3 dd 10
.code
main proc
mov ax,@data ; set up data segment
mov ds,ax
mov dx,offset msg1
mov ah, 9
int 21h
call enterkey
mov eax, ecx
mul num3
mov num2, eax
call enterkey
add num2,ecx
loop3:
mov num1, 550
mov count, 0
call newline
loop1:
mov eax, num1 ; copy num1 to EAX
mov edx, 0 ;edx = remainder = 0
div num2 ; EAX/NUM2
push dx ;saving the remainder to the stack
inc count ;inc the counter for how many stack locations
mov num1, eax ;saving eax back to num1 since ah gets new value
cmp num1, 0 ; checking if num1 = 0 for end of devide.
jnz loop1
loop2:
pop dx ; getting the number store in the stack
call display_chr ; calling the display proc.
dec count ; dec the stack counter
jnz loop2
mov dl, -8 ; sending open (
call display_chr
mov edx, num2 ; display the base
call display_chr
mov dl, -7 ; sending close )
call display_chr
dec num2
cmp num2, 1
jnz loop3
mov ax, 4c00h
int 21h
display_chr proc
cmp dl, 10
js skip
add dl, 7
skip:
add dl, 30h ; ascii adjust back
mov ah, 6 ; sending a single character to the screen
int 21h
ret
display_chr endp
newline proc
mov ah, 6
mov dl, 0dh ; CT
int 21h
mov dl, 0ah ; NL
int 21h
ret
newline endp
enterkey proc
mov ecx, 0
mov ah, 1
int 21h
sub al, 30h
mov cl, al
ret
enterkey endp
main endp
end main
Explanation / Answer
.model small
Mode small supports one data segment and one code segment.
All data and code are near by default.
stack 100h
stack 100h reserves 100h bytes for stack
msg1 db 0DH,0AH,"Enter any base from 2 to 35 ","$"
Here enter the base value from 2 to 35 which will stores in $.
num2 dd?
num2 dd means define double word for num2
num1 dd?
num1 dd means define double word for num1
count db 0
considercount db is o
num3 dd 10
num 3 define double word for 10
main proc
main procedure of a code
mov ax,@data
copy @data to ax
mov ds,ax
copy ax to ds
mov dx,offset msg1
copy offset msg1 to dx
jnz loop1
jnz loop1 sends the program back to loop1 moveax,num1
dec num2
num2 value is decremented
sub al, 30h
30h is seperated from al.
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.