assembler - помогите начать.

компьютеры ассемблер

Вот код:
.model small
.data
str1 db 'Hello!$'

.code
begin:
mov ax, @data
mov ds,ax
mov ah,9
mov dx, offset str1
int 21h
mov ah,10h
int 16h
end begin

когда компилирую, выходит:A2118. cannot have segment address references with TINY model
(masm 6.11)

Примечание:
"ожно попробовать поменять .model small на .model flat " - тогда ещё больше ошибок выйдет )

Примечание:
тогда выходят непонятные символы перед hello!
Ответы:
можно попробовать поменять .model small на .model flat
Если хочешь - сброшу книжку Зубков. С.В., по ассемблеру
[email protected]
.model small
.data
string db "Hello!$"
.code
begin:
 mov ah, 9h
 lea dx, string
 int 21h
 mov ax, 4c00h
 int 21h
end begin
.model tiny                     ; COM модель памяти
.code                          
.startup                        ; Точка входа
       mov ah,09                   ; Выбор функции 9
       mov dx,offset msg       ; Заносим в DX сообщение.
       int 21h                         ; Вызов функции DOS
       ret                     ; Завершение программы
msg     db 'That is my first program on TASM!',10,'$'
end    
В первой строчке мы поставили модель памяти tiny (COM программа, 640КБ). Пока с другими не работал, сам только начинаю.
В DX загружаем данные по офсету msg. 10 - переход строки.
Делаем прерывание 21h и, поскольку в AH 9, вызывается функция 9 прерывания 21h.
Ну, вот и все вроде.
ВХОД: AH = 9, DX грузим офсет сообщения.


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.