Ошибка в программе: "Unexpected end of file encountered" (tasm) - Assembler
Формулировка задачи:
.MODEL SMALL
.STACK 200h
.386
DATASEG
SLINE DB 78 DUP (CHSEP), 0
MESS_1 DB "Mouse type: ",0FFh
MESS_2 DB "Driver version: ", 0FFh
MESS_3 DB "1 - Погасить, 2 - Включить, 3 - Продолжить работу ", 0
MESS_4 DB "Неверная кнопка", 0
MESS_5 DB "Нажмите несколько раз левой клавишей мыши,", 0
MESS_6 DB "затем нажмите любую клавишу на клавиатуре",0
MESS_7 DB "Вы нажали ", 0FFh
MESS_8 DB " раз", 0
TYPE_0 DB "Mouse not found", 0
TYPE_1 DB "Bus Mouse", 0
TYPE_2 DB "Serial Mouse: ", 0
TYPE_3 DB "Inport Mouse", 0
TYPE_4 DB "PS/2 Mouse: ", 0
TYPE_5 DB "HP Mouse", 0
TYPE_U DB "Unknown mouse type", 0
EMPTYS DB 0
BUFLEN = 70
BUF DB BUFLEN
LENS DB ?
SNAME DB BUFLEN DUP (0)
CODESEG
start:
BEGIN LABEL NEAR
MOV AX, @DATA
MOV DS, AX
MOV AX, 00h
INT 33h
CMP BX, 0h
JE L0
JMP L11
L0: PUTL TYPE_0
L11: CLRSCR ; очищаем экран
PUTL MESS_1 ; выводим сообщение о типе мыши
MOV AX, 024h
INT 33h
CMP CH, 0h
JE L0
CMP CH, 1h
JE L1
CMP CH, 2h
JE L2
CMP CH, 3h
JE L3
CMP CH, 4h
JE L4
CMP CH, 5h
JE L5
PUTL TYPE_U
JMP L6
L1: PUTL TYPE_1
JMP L6
L2: PUTL TYPE_2
JMP L6
L3: PUTL TYPE_3
JMP L6
L4: PUTL TYPE_1
JMP L6
L5: PUTL TYPE_1
JMP L6
; выводим версию драйвера
L6: PUTL MESS_2
LEA SI, BUF
MOV Dl, 0h
CALL FORMSTR ;формируем строку для
PUTL SNAME
L9: PUTL MESS_3
CALL GETCH
CMP AL, 31h
JE L7
CMP AL, 32h
JE L8
CMP AL, 33h
JE L10
PUTL MESS_4
L7: ; уменьшаем видимость курсора
MOV AX, 00h
INT 33h
MOV AX, 02h
INT 33h
JMP L9
L8: ; уменьшаем видимость курсора
MOV AX, 00h
INT 33h
MOV AX, 01h
INT 33h
JMP L9
L10: CLRSCR
PUTL MESS_5 ;Нажмите несколько раз левой клавишей мыши, затем
PUTL MESS_6 ;нажмите любую клавишу на клавиатуре
MOV AX, 6h
MOV BX, 1 ;Обозначаем левую клавишу мыши
INT 33h
CALL GETCH
PUTL MESS_7 ;Вы нажали:
MOV AX, 6h
MOV BX, 1 ;Обозначаем левую клавишу мыши
INT 33h
LEA SI, BUF
MOV DL, 0FFh
CALL FORMSTR
PUTL SNAME
PUTL MESS_8
CALL GETCH
exit startРешение задачи: «Ошибка в программе: "Unexpected end of file encountered" (tasm)»
textual
Листинг программы
; EXTRN PUTSS: NEAR ; EXTRN PUTC: NEAR ; EXTRN GETCH: NEAR ; EXTRN GETS: NEAR ; EXTRN SLEN: NEAR ; EXTRN GETDIGS:NEAR ; EXTRN FORMSTR:NEAR