Другие языки программирования и технологии
Почему на компонуется программа (Ассемблер)
MODEL SMALL .STACK 100h .DATA Message DB 'Привет!',13,10,'$' .CODE mov ax,@Data mov dx,ax ; установить регистр DS таким ; образом, чтобы он указывал ; на сегмент данных mov ah,9 ; функция DOS вывода строки mov dx,OFFSET Message ; ссылка на сообщение "Привет!" int 21h ; вывести "Привет!" на экран mov ah,4ch ; функция DOS завершения ; программы int 21h ; завершить программу END
Во-первых перед MODEL точку поставь.
Во вторых, укажи точку входа (место с которого програ будет выполняться) .
В-третьих, инициаллизируй не dx, a ds :)
.MODEL SMALL
.STACK 100h
.DATA
Message DB 'Привет! ',13,10,'$'
.CODE
start: mov ax,@Data ;точка входа на этой строке
mov ds,ax ;инициализация регистра DS
mov ah,9
mov dx,OFFSET Message
int 21h ;вывод сообщения на экран
mov ah,4ch
int 21h ;выход из програмы
END start ;пишем название точки схода, чтобы процессор знал, откуда стоит выполнять программу
Во вторых, укажи точку входа (место с которого програ будет выполняться) .
В-третьих, инициаллизируй не dx, a ds :)
.MODEL SMALL
.STACK 100h
.DATA
Message DB 'Привет! ',13,10,'$'
.CODE
start: mov ax,@Data ;точка входа на этой строке
mov ds,ax ;инициализация регистра DS
mov ah,9
mov dx,OFFSET Message
int 21h ;вывод сообщения на экран
mov ah,4ch
int 21h ;выход из програмы
END start ;пишем название точки схода, чтобы процессор знал, откуда стоит выполнять программу
Попробуйте таааак:
MODEL SMALL
.STACK 100h
.DATA
Message DB 'Привет! ',13,10,'$'
.CODE
mov ax,OFFSET Message ; ссылка на сообщение "Привет! "
mov dx,ax ; установить регистр DS таким
; образом, чтобы он указывал
; на сегмент данных
mov ah,9 ; функция DOS вывода строки
int 21h ; вывести "Привет! " на экран
mov ah,4ch ; функция DOS завершения
; программы
int 21h ; завершить программу
END
Или так:
MODEL SMALL
.STACK 100h
.DATA
Message DB 'Привет! ',13,10,'$'
.CODE
mov ax,[dx]
mov dx,ax ; установить регистр DS таким
; образом, чтобы он указывал
; на сегмент данных
mov ah,9 ; функция DOS вывода строки
mov dx,OFFSET Message ; ссылка на сообщение "Привет! "
int 21h ; вывести "Привет! " на экран
mov ah,4ch ; функция DOS завершения
; программы
int 21h ; завершить программу
END
MODEL SMALL
.STACK 100h
.DATA
Message DB 'Привет! ',13,10,'$'
.CODE
mov ax,OFFSET Message ; ссылка на сообщение "Привет! "
mov dx,ax ; установить регистр DS таким
; образом, чтобы он указывал
; на сегмент данных
mov ah,9 ; функция DOS вывода строки
int 21h ; вывести "Привет! " на экран
mov ah,4ch ; функция DOS завершения
; программы
int 21h ; завершить программу
END
Или так:
MODEL SMALL
.STACK 100h
.DATA
Message DB 'Привет! ',13,10,'$'
.CODE
mov ax,[dx]
mov dx,ax ; установить регистр DS таким
; образом, чтобы он указывал
; на сегмент данных
mov ah,9 ; функция DOS вывода строки
mov dx,OFFSET Message ; ссылка на сообщение "Привет! "
int 21h ; вывести "Привет! " на экран
mov ah,4ch ; функция DOS завершения
; программы
int 21h ; завершить программу
END
Похожие вопросы
- Рабочая ли это программа (Ассемблер)?
- Почему многие программисты ненавидят ассемблер?Ведь у него куча плюсов!Он позволяет максимально задействовать
- Помогите доразбираться в фрагменте программы ассемблера.
- Изменение программы ассемблера.
- Будет ли работать программа? ассемблер.
- Почему скомпилированный код на Ассемблер занимает меньше места чем на C, а на C меньше чем на C++?
- Delphi. Строки. Почему не срабатывает программа.
- Почему нет такой программы?
- ЧТо такое реестр? Почему даже крошечные программы оставляют там записи?
- Почему не работает программа?