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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2009, 00:06   #1
Veselyn
Форумчанин
 
Аватар для Veselyn
 
Регистрация: 29.01.2009
Сообщений: 175
По умолчанию Помогите с лабораторкой (самое простое)

Код:
 
                           ; I.asm
   		     ;
      		     .model tiny
		     .code
     	                org 100h
      		     start: mov	ah,9
             	     mov dx, offset message
      		     int 21h
             	     ret 
                           message db	 
             	    91h,a5h,e0h,a5h,a4h,a0h,00h,91h,a5h,e0h,a3h,a5h,a9h, 
                          end start
Скажите как исправить ошибку которую выдает на коде a5h (второй символ текста), если его удалить то ошибка будет на следующем ит.д.

Вот что получтлось при попытке выполнить > tasm /z /zi /n /m2 hello.asm, hello, hello

Turbo Assembler Version 4.1 24/03/09 22:26:33 Page 1
i.asm

1 ; I.asm
2 ;
3 0000 .model tiny
4 0000 .code
5 org 100h
6 0100 B4 09 start: mov ah,9
7 0102 BA 0108r mov dx, offset message
8 0105 CD 21 int 21h
9 0107 C3 ret
10 0108 91 00 00 00 00 00 00+ message db 91h,a5h,e0h,a5h,a4h,a0h,00h, 91h,a5h,e0h,a3h,a5h,a9h,
11 91 00 00 00 00 00 ??
**Error** i.asm(10) Undefined symbol: A5H
*Warning* i.asm(10) Missing operand - trailing ? assumed
12 00h,46h,4fh,72h,65h,76h,65h,72h,00h , 3ah,3eh, 0Dh,0Ah, '$'
**Error** i.asm(11) Illegal instruction
13 END START
Turbo Assembler Version 4.1 24/03/09 22:26:33 Page 2
Error Summary

message db 91h,a5h,e0h,a5h,a4h,a0h,00h, 91h,a5h,e0h,a3h,a5h,a9h,
**Error** i.asm(10) Undefined symbol: A5H
message db 91h,a5h,e0h,a5h,a4h,a0h,00h, 91h,a5h,e0h,a3h,a5h,a9h,
*Warning* i.asm(10) Missing operand - trailing ? assumed
00h,46h,4fh,72h,65h,76h,65h,72h,00h , 3ah,3eh, 0Dh,0Ah, '$'
**Error** i.asm(11) Illegal instruction
Все люди делятся на 10 типов: те, кто понимают двоичную систему счисления и те, кто нет.
Veselyn вне форума Ответить с цитированием
Старый 25.03.2009, 02:42   #2
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

Это ведь MASM-овский синтаксис если не ошибаюсь? Тогда, устранить ошибку можно 3 способами - переписать под TASM-овский препроцессор,
Скомпилировать MAMS-ом версии 6.2(или какая там поддерживает 16-битный код) или же скачать замечательный ассемблер FASM и переписать под его синтаксис
Кстати строку побайтово, совсем не обязательно задавать, можно написать просто
message db "Hello world$"
"Тяжело в учении, легко в бою" - А.В. Суворов
Ivan_32 вне форума Ответить с цитированием
Старый 25.03.2009, 09:19   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Когда то наткнулся на такое.
Нужно просто дописать 0 перед такими числами, чтоб компилер это числом считал:
Код:
 91h,0a5h,0e0h,0a5h...
I'm learning to live...

Последний раз редактировалось Stilet; 25.03.2009 в 09:25.
Stilet вне форума Ответить с цитированием
Старый 25.03.2009, 09:35   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Stilet, +1

но мой старенький TASM 1.0
ещё ругался, пока я не вынес message db ... в секцию .data
и ещё надо в конце строки обязательно добавить символ (признак конца строки!) '$'
вот так:
Код:
                     .model tiny
                     .data
                     message db 91h,0a5h,0e0h,0a5h,0a4h,0a0h,00h,91h,0a5h,0e0h,0a3h,0a5h,0a9h, '$'
                     .code
                        org 100h
                     start: mov ah,9
                     mov dx, offset message
                     int 21h
                     ret 
                     end start

Последний раз редактировалось Serge_Bliznykov; 25.03.2009 в 09:38.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.03.2009, 09:54   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну, может и так...
Компиляторы разные бывают.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.03.2009, 20:24   #6
Veselyn
Форумчанин
 
Аватар для Veselyn
 
Регистрация: 29.01.2009
Сообщений: 175
По умолчанию

Спасибо, очень помогли, всем большой +
Все люди делятся на 10 типов: те, кто понимают двоичную систему счисления и те, кто нет.

Последний раз редактировалось Veselyn; 25.03.2009 в 20:28.
Veselyn вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
заменить самое длинное слово, на самое короткое в Delphi сер4ей Помощь студентам 5 05.03.2009 18:40
Помогите с лабораторкой. Raptor5 Паскаль, Turbo Pascal, PascalABC.NET 6 10.06.2008 16:05
C#, помогите плиз с лабораторкой Raptor5 Помощь студентам 3 30.05.2008 01:29
Помогите с лабораторкой Raptor5 Помощь студентам 3 21.05.2008 23:31