Olá, hoje eu estava dando uma olhada no tutorial numero 10, e sobre o comando WRITE, hoje quando eu fui testar o assembly gerado pelo compilador, em um emulador, ele dava erro na seguinte linha ->
extrn READ:near, WRITE:near
O código completo é o seguinte ->
.model small
.stack
.code
extrn READ:near, WRITE:near
PROG segment byte public
assume cs:PROG,ds:PROG,es:PROG,ss:PROG
NOTA1: dw 0
NOTA2: dw 0
MEDIA: dw 0
BONUS: dw 0
MAIN:
mov ax, PROG
mov ds, ax
mov es, ax
L0:
mov ax, word ptr NOTA1
push ax
mov ax, 0
pop bx
cmp bx, ax
jl L2
xor ax, ax
jmp L3
L2:
mov ax, -1
L3:
push ax
mov ax, word ptr NOTA1
push ax
mov ax, 10
pop bx
cmp bx, ax
jg L4
xor ax, ax
jmp L5
L4:
mov ax, -1
L5:
pop bx
or ax, bx
push ax
mov ax, word ptr NOTA2
push ax
mov ax, 0
pop bx
cmp bx, ax
jl L6
xor ax, ax
jmp L7
L6:
mov ax, -1
L7:
pop bx
or ax, bx
push ax
mov ax, word ptr NOTA2
push ax
mov ax, 10
pop bx
cmp bx, ax
jg L8
xor ax, ax
jmp L9
L8:
mov ax, -1
L9:
pop bx
or ax, bx
jz L1
call READ
mov word ptr NOTA1, ax
call READ
mov word ptr NOTA2, ax
jmp L0
L1:
mov ax, word ptr NOTA1
push ax
mov ax, word ptr NOTA2
pop bx
add ax, bx
push ax
mov ax, 2
pop bx
xchg ax, bx
cwd
div bx
mov word ptr MEDIA, ax
mov ax, word ptr MEDIA
call WRITE
mov ax, word ptr MEDIA
push ax
mov ax, 5
pop bx
cmp bx, ax
jge L10
xor ax, ax
jmp L11
L10:
mov ax, -1
L11:
jz L12
mov ax, 1
mov word ptr BONUS, ax
jmp L13
L12:
mov ax, -1
mov word ptr BONUS, ax
L13:
mov ax, word ptr BONUS
call WRITE
mov ax,4C00h
int 21h
PROG ends
end MAIN
agradeço pela ajuda