IPB
ЛогинПароль:

> -=FAQ=-
сообщение
Сообщение #1


Lonely_Raven
****

Группа: Пользователи
Сообщений: 640
Пол: Мужской

Репутация: -  1  +


F A Q

Содержание
Все примеры в COM-формате


--------------------
Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ
---------------------
RTFM - Read the fucking manual
---------------------
http://www.livejournal.com/users/lonley_raven/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Lonely_Raven
****

Группа: Пользователи
Сообщений: 640
Пол: Мужской

Репутация: -  1  +


Вывод строки


.8086
.MODEL TINY
.CODE
ORG 100h

start:
mov ax,3 ; Очищаем экран, - бит 7=0
int 10h

;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;; Средств ДОС;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;;;;;;; Функция ДОС #9;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;;
;; AH = 09
;; DS:DX = адрес строки, оканчивающейся знаком '$'.
;; Вывод символов на устройство STDOUT, по умлч. - дисплей.
;; Управляющие коды распознаются. При нажатии Ctrl+Break
;; вызывается INT23h
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;
;

mov ah,9 ; Функция ДОС - Вывод строки
lea dx,DOSString ; DS:DX - дрес строки, оканчивающейся знаком '$'
int 21h
mov cx,DOSStrLength
dec cx ; Уменьшаем длину, чтобы исключить вывод '$'
push cx ; Сохраняем длину строки
push dx ; и смещение, оно нам еще пригодится
mov si,dx ; DS:SI - дрес строки (для lodsb)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Несколько другая реализация
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; AH = 02
;; DL = код символа
;; Вывод символа на устройство STDOUT, по умлч. - дисплей.
;; Управляющие коды распознаются. При нажатии Ctrl+Break
;; вызывается INT23h
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;

mov ah,2
DOSOutput:
lodsb
mov dl,al
int 21h
loop DOSOutput

;;;;;;;;;;;;;;; И еще одна
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; AL = код символа
;; INT 29h
;; Так называемая - НЕДОКУМЕНТИРОВАННАЯ ФУНКЦИЯ ДОС
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
pop si ; Восстанавливаем из стека
pop cx ; длину строки и смещение
DOSUnDocOutput:
lodsb
int 29h
loop DOSUnDocOutput

;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;; Средства BIOS;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;;;;;;; Функция BIOS #13;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; AH = 13h
;; AL = режим вывода (см. установки отдельных битов ниже)
;; = 0 - в строке только символы, атрибут в BL, курсор не сдвигается
;; = 1 - в строке только символы, атрибут в BL, курсор сдвигается
;; = 2 - строка содержит символы и атрибуты, курсор не сдвигается
;; = 3 - строка содержит символы и атрибуты, курсор сдвигается
;; BH = номер видеостраницы
;; BL = атрибут, если режим равен 0 или 1
;; CX = длина строки (исключая атрибуты)
;; DH = координата по вертикали
;; DL = координата по горизонтали
;; ES:BP = адрес строки
;;
;;
;; Значения отдельных битов в AL:
;;
;; │7│6│5│4│3│2│1│0│ AL
;; │ │ │ │ │ │ │ └──── 0=не сдвигать курсор, 1=сдвигать курсор
;; │ │ │ │ │ │ └───── 0=BL имеет атрибут, 1=атрибуты в строке
;; └─┴─┴─┴─┴─┴────── не используется
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;

mov ax,1301h
mov bx,001Fh
mov cx,BIOSStrLength1
mov dx,1000h
lea bp,BIOSString1
int 10h
mov al,3
mov cx,BIOSStrLength2
mov dx,1100h
lea bp,BIOSString2
int 10h
mov ax,4C00h
int 21h

DOSString DB 'Строка, выведенная средствами ДОС',13,10,'$'
DOSStrLength DW $-DOSString
BIOSString1 DB 'Строка, выведенная средствами BIOS',13,10
BIOSStrLength1 DW $-BIOSString1
BIOSString2 DB 'В',1Fh,'т',7,'о',1Fh,'р',8,'а',9,'я',10,' ',7,'с',11,'т',12,'р'
DB 7,'о',7,'к',7,'а',1Eh,' ',1Eh,'о',1Fh,'т',7,' ',7,'B',2,'I',3,'O',4,'S',5
BIOSStrLength2 DW 22

END start




--------------------
Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ
---------------------
RTFM - Read the fucking manual
---------------------
http://www.livejournal.com/users/lonley_raven/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Shadow   -=FAQ=-   9.05.2003 6:53
Shadow   Re: -=FAQ=-   9.05.2003 7:04
Shadow   Re: -=FAQ=-   9.05.2003 7:09
Shadow   Re: -=FAQ=-   9.05.2003 7:11
Shadow   Re: -=FAQ=-   9.05.2003 7:12
GLuk   Re: -=FAQ=-   11.05.2003 18:30


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.04.2024 1:50
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name