Assembly Language,,, i have a code,, i need to explain every line ,, what each l
ID: 3838555 • Letter: A
Question
Assembly Language,,,
i have a code,, i need to explain every line ,, what each line do and whats their function,,, Please answer me in a word document please,,,Explain each line please,,,,
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
Page 55,80//An instruction is a statement that becomes executable when a program is assembled. •
Model .small//defines the memory model used like medium, stack,large etc
.stack 100k // reserve the 100 bytes for stack.org and current address to 100 h
.386//enables the assembly of nin privileged instructions for processor
.data//register are described by CPU store data or memory address
Msg1 dB // the msg is stored in directive
Num1 dB//directive is most widely used directives
Count dB 0//returns count value is zero
.code//begin the instructions
Main proc//the main procedure starts
Mov ax,@data// macro data mov to the 16 bit register
Mov ds,ax// data will mov to the data sigment register.
Mov DX,offset msg1//msg mov to data register
Mov ah,a// data moved to accumulator register.
Int 21h//interrupt handler
Call entrykey // call text wt we entered
Mov eax,ecx/ /data is moved from code reg to accumulator register
Mul num3//performs multiplication
Mov num2,eax//accumulator data is mov to num2
Call entry key // call inputs
Add num2,ecx// addition num2 value and code register data
Loop3:start loop condition
Mov num1,550//in num1 stores the 550 value
Mov count ,0//here count value is zero
Call new line// just print text in new line
Loop1 : loop started
Mov eax,num1// here 550 value is mov to accumulator register
Copy num1,eax//again eax valu is copy to num1
Mov edx,0//zero is mov to data register
Edx=reminder=0//now zero is stored in data register
Div num2=eax,num1//perform division operation
Push DX,store remember// here reminder value is stored in stack
Inc count// initially count is0 now count value is increased
Mov num1,eax// again data mov to num1
Cmp num1,0// compare num1 value have 0 r not
Jnz loo1//jump not equal to zero repeat loop1
Loop2:(here onwords not describe entair code critically mnemonic are explained)
Pop DX//delete the data from stack
Dec count // now count value is 1 decrement to 0
Mov DL,-8// register with 8 bit have signed value
Js skip// jump sign terminate loop
Ret// indicates the return procedure.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.