Поиск:

Ответ в темуСоздание новой темы Создание опроса
> На экран выводится мусор, начинаю с TASM 2.0 
:(
    Опции темы
СЭНСЭЙ
Дата 22.10.2009, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Начал изучение асма с примитивной программы
Код

DOSSEG
        .MODEL   SMALL
        .STACK   100h
        .DATA
message DB 'Hallo!',13,10,'$'
        .CODE
 mov ax, @data
 mov ds, ax

mov ah,9
mov dx,OFFSET message
int 21h
mov ah,4ch

int 21h
END


Но при выводе перед словом Hallo! выводится еще куча всякого мусора
Подскажите в чем причина
Компьютер 233ММХ with 32мб DDR
в автоексеке и конфиге отключаю все кроме himem.sys и Волкова
PM MAIL   Вверх
airyashov
Дата 23.10.2009, 08:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 284
Регистрация: 1.7.2008

Репутация: 2
Всего: 6



выложите исходник который запускаете
невидно только точки входа, но например tasm и так проглотит


--------------------
icq:3(один)7748666
mail:airyashov( а )inbox.ru
PM MAIL   Вверх
СЭНСЭЙ
Дата 23.10.2009, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



это полный текст программы.
Я его на другой машине компилирую и линкую.
Не могу от туда скопировать экзешник.
Компилирую и линкую с помощью TASM 2.0
PM MAIL   Вверх
Akina
Дата 23.10.2009, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 1
Всего: 454



Нет метки точки входа - поэтому TASM ставит ноль. А там сегмент данных (model small)...




--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
СЭНСЭЙ
Дата 23.10.2009, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Вот линковщик, компановщик, исходник программы и сама программа.

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  asm_test.rar 94,64 Kb
PM MAIL   Вверх
СЭНСЭЙ
Дата 23.10.2009, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Попробовал на MASM 6.11 сделать ту же прогу, естественно подкорректировав синтаксис под эту версию:
Код

CSEG segment
org 100h

Begin:

mov ah,9
mov dx,offset Message
int 21h

int 20h

Message db 'Hello!$'
CSEG ends
end Begin


Тоже самое - мусора меньше, но он есть перед текстом выводимым на экран
где то 8 символов псевдографики (линковал и запускал под виндой ХР СП3 в оболочке VC 4.01)

Добавлено через 4 минуты и 2 секунды
Акина, подредактируйте мой код пожалуйста.
Я только начал учить по книгам и еще не знаю что такое метка точки входа.

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  asm_test.rar 94,64 Kb
PM MAIL   Вверх
piritus
Дата 23.10.2009, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 226
Регистрация: 3.1.2007
Где: Сибирь

Репутация: нет
Всего: 3



Код

;  A 16-bit DOS HelloWorld program originally by RedOx.  Produces a small model .EXE executable.

; To assemble and link from within WinAsm Studio, you must have a special 16-bit linker, 
; such as the one in the archive at this URL- http://win32assembly.online.fr/files/Lnk563.exe
; Run the archive to unpack Link.exe, rename the Link.exe file to Link16.exe and copy it
; into the \masm32\bin folder.

.MODEL    small
.stack    100h

.data 
    msg        db "This is a 16-bit DOS .EXE executable",13,10,"Hello, World!",13,10,"$"; The string must end with a $

.code
start:
    mov        ax,@data        ; Get the address of the data segment
    mov        ds,ax            ; Set the DS segment
     
    mov        dx,offset msg    ; Get the address of our message in the DX
    mov        ah,9            ; Function 09h in AH means "WRITE STRING TO STANDARD OUTPUT"
    int        21h                ; Call the DOS interrupt (DOS function call)
    
    mov        ax,0C07h        ; Function 0Ch = "FLUSH BUFFER AND READ STANDARD INPUT"
    int        21h                ; Waits for a key to be pressed.
    
    mov        ax, 4C00h        ; the exit fuction  [4C+no error (00)]
    int        21h                ; call DOS interrupt 21h
end start

--------------------
PM MAIL ICQ   Вверх
СЭНСЭЙ
Дата 23.10.2009, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



piritus, при компиляции в TASM 2.0 выдает ошибку в 23 строке (constant too large)
напоминаю что компьютер intel 233ММХ

Добавлено через 31 секунду
операционная система ДОС 6.22, родимый
PM MAIL   Вверх
СЭНСЭЙ
Дата 26.10.2009, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Всех прошу прощения.
В коде программы была ошибка:
вместо
Код

 mov ax, @data
 mov ds, ax

mov ah,9
mov dx,OFFSET message

было
Код

 mov ax, @data
 mov dx, ax

mov ah,9
mov dx,OFFSET message


исправил и все заработало!
Всем спасибо за внимание.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.1065 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.