Assembly Language,,, i have a code,, i need to explain every line ,, what each l
ID: 3839144 • 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,,,, i got 2 answer ,,, can someone please give me the final explanation,,, if you are not sure, please dont answer. thank you,,,
code,,,
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
Expert Answer
1st 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.
2nd 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.
please combine both,, and give me a final explanation of each line please,,,,
Explanation / Answer
how to combine the both answers , its completily seperate ways to answer that question . both answers are right so we just follow that
1.
.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
2.
.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
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.