Консультация № 196326
07.09.2019, 13:36
0.00 руб.
0 2 0
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
У меня windows 10 тип 64, работаю в DosBox:
Вопрос по листингу 11.1 Калашникова(Ассемблер это просто!)
Он говорит что надо с Ассемблировать этот код:
Код:

CSEG segment
assume cs:CSEG, ds:CSEG, es:CSEG, ss:CSEG
org 100h
Begin_shell:
call Check_video
mov ah, 9
mov dx, offset Mess_about
int 21h
call Main_proc
int 20h
include main.asm
include display.asm
include files.asm
include keyboard.asm
include messages.asm
CSEG ends
Begin_shell endp

У меня выскакивает ощибка: unmatched block nesting : Begin_shell (черезмерная вложенность блоков)
А когда ассеблирую с диска - Калашникова - прогу:
Код:

; --- Ассемблирование (получение *.com файла) --
CSEG segment
assume cs:CSEG, ds:CSEG, es:CSEG, ss:CSEG
org 100h

Start:
jmp Begin

; ======= Процедуры =========
; Головная
include main.asm

; Работа с дисплеем
include display.asm

; Работа с файлами
include files.asm

; Работа с клавиатурой
include keyboard.asm

; Сообщения
include messages.asm

; Начало программы
Begin:
call Check_video ;Проверим видеорежим и текущую страницу

mov ah,9
mov dx,offset Mess_about
int 21h ;Выведем сообщение с приветствием

call Main_proc ;Вызывем головную процедуру

; Сюда мы попадем толко в том случае, если пользователь решил выйти в DOS
int 20h

CSEG ends
end Start

Выдает эту ошибку:
undefined symbol : Check_video
undefined symbol : Mess_about
undefined symbol : Main_proc
Там видно что нечего вызывать функцией - "Call"
Подскажите, что не хватает..

Обсуждение

давно
Посетитель
403242
1
07.09.2019, 20:08
общий
14.09.2019, 21:20
РЕШЕНИЕ!:)
я просто создал пустые файлы с процедурами, в этой же папке:
Код:

; === Головная процедура ===
Main_proc proc
; Пока что пустая...
ret
Main_proc endp

Все так, как я и думал, просто я думал что это какие то стандартные процедуры, уже прописаны где то.
Ошибки решены в результате таким образом:
Код:

CSEG segment
assume cs:CSEG, ds:CSEG, es:CSEG, ss:CSEG
org 100h
Start:
Begin_shell proc
call Check_video
mov ah, 9
mov dx, offset Mess_about
int 21h
call Main_proc
int 20h
include main.asm
include display.asm
include files.asm
include keyboard.asm
include messages.asm
Begin_shell endp
CSEG ends
end Start

Разговор с самим собой!:)))
давно
Посетитель
7438
7205
16.09.2019, 15:03
общий
Адресаты:
Так понимаю, Вы нашли решение после общения на cyberforum.ru?
Мир тесен... Вопросы еще остались?
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Форма ответа