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

I need help in this assembly program, I can fix those 4 errors .MODEL SMALL .286

ID: 3841989 • Letter: I

Question

I need help in this assembly program, I can fix those 4 errors

.MODEL SMALL
.286
.DATA

.CODE

Menu:
mov ah, 0
mov al,3h
int 10h

mov ax, 0600h
mov bh,0fh
mov cx, 0000h
mov dx, 184Fh
int 10h
mov ah,02h
mov bh,00
mov dh,00
mov dl,00
int 10h
mov dl, mostrarMenu
mov ah,09
int 21h

mov ah,08
int 21h

mostrarMenu db 'Bienvenido Eliga una figura',13,10
             db '1. Circulo',13,10
             db '2. Linea',13,10
             db '3. Cuadrado',13,10
             db '4. Triangle',13,10
             db 'Selecciona un opcion',13,10,'$'

cmp al,49
je op1
cmp al,50
je op2
cmp al,51
je op3
cmp al,52
je op4

op1:
.model SMALL
.code
org 100h
circle1:
mov ax, 13h
int 10h
PUSH 0A000H
pop es
mov dx, 160
mov di,100
mov al, 04h
mov bx, 50
call circle
mov ah,0
int 16h
mov ax, 3
int 10h
mov ah, 4ch
int 21h
circle:
mov bp,0
mov si, bx
c00:
call _8pixels
sub bx, bp
inc bp
sub bx, bp
jg c01
add bx, si
dec si
add bx, si
c01:
cmp si, bp
jae c00
ret
_8pixels:
CALL _4PIXELS

_4PIXELS:
xchg bp, si
call _2PIXELS
_2PIXELS:
neg si
push di
add di, si
IMUL DI,320
add di, dx
mov es:[di+bp], al
sub di, bp
stosb
pop di
ret
end circle1

op2:
.MODEL SMALL
.DATA
H DW 100
W DW 100
TEMP DW 0000
TEMP2 DW 0000
.CODE
LINE PROC
MOV AH, OH
MOV AL, 12H
INT 10H
MOV CX, H
MOV DX, W
MOV TEMP2, CX
MOV BX, CX
ADD BX, DX
MOV TEMP, BX
MOV AX, 0C02H
BACK:
INT 10H
INC CX
CMP CX, 300
JNZ BACK
MOV AX, 0C02H
RET
LINE ENDP
START:
MOV AX, @DATA
MOV DS, AX
CALL LINE
MOV AX,0H
INT 16H
MOV AH, OH
MOV AL,03H
INT 10H
FIN:
MOV AX, 4C00H
INT 21H
END START

op3:
.MODEL SMALL
.DATA
H DW 100
W DW 100
TEMP DW 0000
TEMP 2 DW 0000
.CODE
RECT PROC
MOV AH, 0H
MOV AL, 12H
INT 10H
MOV CX, W
MOV DX, H
MOV TEMP2, CX
MOV BX, CX
ADD BX, DX
MOV TEMP, BX
MOV AX, 0C02H
BACK1:
INT 10H
INC DX
CMP DX, CX
JNZ BACK1

MOV AX, 0C02H
BACK2:
INT 10H
DEC CX
CMP CX, TEMP2
JNZ BACK2
MOV AX, 0C02H
BACK3:
INT 10H
DEC DX
CMP DX, CX
JNZ BACK 3
RET
RECT ENDP
RECT1:
MOV AX, @DATA
MOV DX, AX
CALL RECT
MOV AX, 0H
INT 16H
MOV AH, 0H
MOV AL, 03H
INT 10H
FIN:
MOV AX, 4C00H
INT 21H
END RECT1

op4:
.MODEL SMALL
.DATA
H DW 50
W DW 50
TEMP DW 0000
TEMP2 DW 0000
.CODE
JMP START
MODE DB 18
X_CENTER DW 300
Y_CENTER DW 200
Y_VALUE DW 0
X_VALUE DW 100
DECISION DW 1
COLOUR DB 2

TRI:
MOV AH, 00
MOV AL, MODE
INT 10H

DRAWCIRCLE:
MOV AL, COLOUR
MOV AH, 0CH

MOV CX, X_VALUE
ADD CX, X_CENTER
MOV DX, Y_VALUE
NEG DX
ADD DX, Y_CENTER
INT 10H

MOV CX, X_VALUE
NEG CX
ADD CX, X_CENTER
INT 10H

MOV CX, Y_VALUE
ADD CX, X_CENTER
MOV DX, X_VALUE
NEG DX
ADD DX, Y_CENTER
INT 10H
MOV CX, Y_VALUE
NEG CX
ADD CX, X_CENTER
INT 10H

INC Y_VALUE
CONDITIO1:
CMP DECISION, 0
JA CONDITION2
MOV CX, Y_VALUE
MOV AX, 2
IMUL CX
ADD CX, 1
INC CX
ADD DECISION, CX
MOV BX, Y_VALUE
MOV BX, X_VALUE
CMP BX, DX
JG READKEY
JMP DRAWCIRCLE


CONDITION2:
DEC X_VALUE
MOV CX, Y_VALUE
SUB CX, X_VALUE
MOV AX, 2
IMUL CX
INC CX
ADD DECISION, CX
MOV BX, Y_VALUE
MOV DX, X_VALUE
CMP BX, DX
JG READKEY
JMP DRAWCIRCLE

READKEY:
MOV AH, 00
INT 16H

ENDD:
MOV AH, 00
MOV AL, 03
INT 10H
MOV AH, 04CH
MOV AL, 00
INT 21H
END TRI

END Menu

icrosoft (R) Macro Assembler Uersiom 5.00 right (C) Microsoft Corp 1981-1985, 1987. All rights reserved object filename [menu oBJ1: Source listing CNUL.LSTI: ross-reference CNUL.CRFJ nu. ASM(29) error A2006: Phase error between passes menu ASM(39): error A2009: Symbol not defined: 0P2 menu .ASM(41): error A2009: Symbol not defined OP3 menu ASMC43): error A2009: Symbol not defined OPA 50418 466110 Bytes symbol space free Warning Errors 4 Severe Errors

Explanation / Answer

.MODEL SMALL

.286

.DATA

.CODE

Menu:

mov ah, 0

mov al,3h

int 10h

mov ax, 0600h

mov bh,0fh

mov cx, 0000h

mov dx, 184Fh

int 10h

mov ah,02h

mov bh,00

mov dh,00

mov dl,00

int 10h

mov dl, mostrarMenu

mov ah,09

int 21h

mov ah,08

int 21h

mostrarMenu db 'Bienvenido Eliga una figura',13,10

             db '1. Circulo',13,10

             db '2. Linea',13,10

             db '3. Cuadrado',13,10

             db '4. Triangle',13,10

             db 'Selecciona un opcion',13,10,'$'

cmp al,49

je op1

cmp al,50

je op2

cmp al,51

je op3

cmp al,52

je op4

op1:

.model SMALL

.code

org 100h

circle1:

mov ax, 13h

int 10h

PUSH 0A000H

pop es

mov dx, 160

mov di,100

mov al, 04h

mov bx, 50

call circle

mov ah,0

int 16h

mov ax, 3

int 10h

mov ah, 4ch

int 21h

circle:

mov bp,0

mov si, bx

c00:

call _8pixels

sub bx, bp

inc bp

sub bx, bp

jg c01

add bx, si

dec si

add bx, si

c01:

cmp si, bp

jae c00

ret

_8pixels:

CALL _4PIXELS

_4PIXELS:

xchg bp, si

call _2PIXELS

_2PIXELS:

neg si

push di

add di, si

IMUL DI,320

add di, dx

mov es:[di+bp], al

sub di, bp

stosb

pop di

ret

end circle1

op2:

.MODEL SMALL

.DATA

H DW 100

W DW 100

TEMP DW 0000

TEMP2 DW 0000

.CODE

LINE PROC

MOV AH, OH

MOV AL, 12H

INT 10H

MOV CX, H

MOV DX, W

MOV TEMP2, CX

MOV BX, CX

ADD BX, DX

MOV TEMP, BX

MOV AX, 0C02H

BACK:

INT 10H

INC CX

CMP CX, 300

JNZ BACK

MOV AX, 0C02H

RET

LINE ENDP

START:

MOV AX, @DATA

MOV DS, AX

CALL LINE

MOV AX,0H

INT 16H

MOV AH, OH

MOV AL,03H

INT 10H

FIN:

MOV AX, 4C00H

INT 21H

END START

op3:

.MODEL SMALL

.DATA

H DW 100

W DW 100

TEMP DW 0000

TEMP 2 DW 0000

.CODE

RECT PROC

MOV AH, 0H

MOV AL, 12H

INT 10H

MOV CX, W

MOV DX, H

MOV TEMP2, CX

MOV BX, CX

ADD BX, DX

MOV TEMP, BX

MOV AX, 0C02H

BACK1:

INT 10H

INC DX

CMP DX, CX

JNZ BACK1

MOV AX, 0C02H

BACK2:

INT 10H

DEC CX

CMP CX, TEMP2

JNZ BACK2

MOV AX, 0C02H

BACK3:

INT 10H

DEC DX

CMP DX, CX

JNZ BACK 3

RET

RECT ENDP

RECT1:

MOV AX, @DATA

MOV DX, AX

CALL RECT

MOV AX, 0H

INT 16H

MOV AH, 0H

MOV AL, 03H

INT 10H

FIN:

MOV AX, 4C00H

INT 21H

END RECT1

op4:

.MODEL SMALL

.DATA

H DW 50

W DW 50

TEMP DW 0000

TEMP2 DW 0000

.CODE

JMP START

MODE DB 18

X_CENTER DW 300

Y_CENTER DW 200

Y_VALUE DW 0

X_VALUE DW 100

DECISION DW 1

COLOUR DB 2

TRI:

MOV AH, 00

MOV AL, MODE

INT 10H

DRAWCIRCLE:

MOV AL, COLOUR

MOV AH, 0CH

MOV CX, X_VALUE

ADD CX, X_CENTER

MOV DX, Y_VALUE

NEG DX

ADD DX, Y_CENTER

INT 10H

MOV CX, X_VALUE

NEG CX

ADD CX, X_CENTER

INT 10H

MOV CX, Y_VALUE

ADD CX, X_CENTER

MOV DX, X_VALUE

NEG DX

ADD DX, Y_CENTER

INT 10H

MOV CX, Y_VALUE

NEG CX

ADD CX, X_CENTER

INT 10H

INC Y_VALUE

CONDITIO1:

CMP DECISION, 0

JA CONDITION2

MOV CX, Y_VALUE

MOV AX, 2

IMUL CX

ADD CX, 1

INC CX

ADD DECISION, CX

MOV BX, Y_VALUE

MOV BX, X_VALUE

CMP BX, DX

JG READKEY

JMP DRAWCIRCLE

CONDITION2:

DEC X_VALUE

MOV CX, Y_VALUE

SUB CX, X_VALUE

MOV AX, 2

IMUL CX

INC CX

ADD DECISION, CX

MOV BX, Y_VALUE

MOV DX, X_VALUE

CMP BX, DX

JG READKEY

JMP DRAWCIRCLE

READKEY:

MOV AH, 00

INT 16H

ENDD:

MOV AH, 00

MOV AL, 03

INT 10H

MOV AH, 04CH

MOV AL, 00

INT 21H

END TRI

END Menu

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote