Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2010, 15:49   #1
Fata1ity
 
Регистрация: 28.05.2010
Сообщений: 3
Печаль Проблема с Ассемблером (TASM)

Пишу программу на Турбо ассемблере, под DOS, много псевдографики (около 80% программы), бОльшая часть программы уже написана (37213 строк / 1,12Мб), но при добавлении нескольки строк типа:

Код:
mov ah,2	;Ф-я BIOS установка позиции курсора
	mov bh,0	;0-страница
	mov dh,1	;Строка
	mov dl,5	;Столбец
	int 10h		;Вызов прерывания BIOS
           mov	ax,1003h
	mov	bl,00h
	int	10h
	mov ah,09	;Ф-я DOS вывод символа
	mov al,0dbh	;символ
	mov bl,0fh      ;Первая - фон, Вторая - цвет символа 
           mov cx,6       ;Количество символов подряд 
           int 10h		;Вызов прерывания DOS
Программа не хочет компилиться. TASM выдает ошибку: "Location counter overflow", что значит счетчик адреса переполнен, с указанием номера строки типа JMP <метка>, которая находится в конце программы.
Как обойти эту ошибку? Может нужно как то обнулить счетчик адреса, или разделить программу на сегменты ?
Кстати программа начинается так:
Код:
.MODEL small
stack 255
codeseg
(модель памяти - Small, под стек выделено - 255 байт)

Пожалуйста, помогите, из - за ошибки не могу доделать программу... А скоро уже срок сдачи
Fata1ity вне форума Ответить с цитированием
Старый 28.05.2010, 16:44   #2
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

на сегменты бей, сегмент кода больше 64Kb
jmp far в помощь
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Старый 28.05.2010, 16:56   #3
Fata1ity
 
Регистрация: 28.05.2010
Сообщений: 3
По умолчанию

Заменил
jmp <метка>
на
jmp far <метка>

Теперь выдает ошибку Illegal immediate

Или я что то неправильно сделал?
И еще вопрос как "разбить" код на сегменты, приведите пример, кусок кода если можно
Fata1ity вне форума Ответить с цитированием
Старый 28.05.2010, 22:36   #4
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

всю псевдографику лучше вынести в отдельный файл, а затем подгружать в выделенный при помощи функции 48h int 21h блок памяти. Программа заметно сократится.
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 28.05.2010, 23:24   #5
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

Код:
.model huge
.data
.stack 100h
.code My1
exit:
mov ax,4c00h
int 21h

.code My2
.startup
mov ax,00011001b
xor bx,bx
mov cx,8
a1:
RCL al,1
RCR bl,1
loop a1
mov al,bl

int 3
jmp far ptr exit
end
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TASM дело тонкое!:) (Где в TASM IDE?) 3.14oner Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 15.11.2011 16:20
Проблема с командой CWD в TAsm Mixim Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 16.12.2009 13:33
Проблемы с ассемблером Миклуха Помощь студентам 4 30.11.2009 12:08
Проблема с DPMI в TASM Rurisk Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 01.05.2008 23:17