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

Write an assembly language program in ARC Tools that: Stores two values in diffe

ID: 3816758 • Letter: W

Question

Write an assembly language program in ARC Tools that:

Stores two values in different variables (a, b)

Calculates the result of the first number to the power of the second value

Copies the result to a new variable (c)

Can anyone debug following assembly code?

.MODEL SMALL
.DATA
BASE DB ?
POW DB ?
NL1 DB 0AH,0DH,'ENTER BASE:','$'
NL2 DB 0AH,0DH,'ENTER POWER:','$'
.CODE

MAIN PROC

MOV AX,@DATA
MOV DS,AX

ENTER_BASE:


LEA DX,NL1
MOV AH,09H
INT 21H

MOV AH,01H
INT 21H
SUB AL,30H
MOV BL,AL

MOV BASE,AL

ENTER_POWER:

LEA DX,NL2
MOV AH,09H
INT 21H

MOV AH,01H
INT 21H
SUB AL,30H

MOV CL,AL
DEC CL
MOV AX,00
MOV AL,BASE
LBL1:

MUL BL
LOOP LBL1

MOV CL,10
DIV CL
ADD AX,3030H
MOV DX,AX

MOV AH,02H
INT 21H
MOV DL,DH
INT 21H

MOV AH,4CH
INT 21H

MAIN ENDP
END MAIN

Explanation / Answer

.MODEL SMALL .DATA BASE DB ? POW DB ? NL1 DB 0AH,0DH,'ENTER BASE:','$' NL2 DB 0AH,0DH,'ENTER POWER:','$' .CODE MAIN PROC MOV AX,@DATA MOV DS,AX ENTER_BASE: LEA DX,NL1 MOV AH,09H INT 21H MOV AH,01H INT 21H SUB AL,30H MOV BL,AL MOV BASE,AL ENTER_POWER: LEA DX,NL2 MOV AH,09H INT 21H MOV AH,01H INT 21H SUB AL,30H MOV CL,AL DEC CL MOV AX,00 MOV AL,BASE LBL1: MUL BL LOOP LBL1 MOV CL,10 DIV CL ADD AX,3030H MOV DX,AX MOV AH,02H INT 21H MOV DL,DH INT 21H MOV AH,4CH INT 21H MAIN ENDP END MAIN