Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Помогите с ассемблером (http://www.tehnari.ru/f41/t43114/)

Scam 08.12.2010 21:19

Помогите с ассемблером
 
Скоро сессия! А у меня хвост...
Нужно написать прогу на асемблере в Turbo Debugger'е которая выводит текст в левом верхем углу, а потом по нажатию кнопки выстраивается в столбик.
Помогите пожалуйста

Scam 08.12.2010 23:17

Ideal
p386
Model Small
DATASEG
nadpis db 'Eta nadpis',0
ENDS
CODESEG
Proc Main
;Инициализация сегмента данных
mov ax,DGROUP
mov DS,ax
;Вход в видеорежим
mov ax,3h
int 10h
;Инициализация регистров
mov ax,0B800h ;Начало видеопамяти для текстового режима
mov es,ax
mov si,offset nadpis
xor di,di ;Стандартный метод очистки регистра
;Атрибут текста - это цвет текста и цвет фона
;Атрибут занимает 1 байт
mov ah,0Ah ;Ярко-зелёный текст на чёрном фоне
Metka:
lodsb ;Загружаем в регистр al символ
or al,al ;Данная операция не меняет содержимого регистра, но устанавливает zf в 0, если al=0
jz Finish ;Если jz=0 (т.е. al=0), закончить печать
stosw ;Посылает слово ax (ah-атрибут, al-ASCII-код) в видеопамять
jmp Metka
Finish:
mov ax,4c00h
int 21h
Endp Main
ENDS
END Main


Вот нашел в интернете как просто вывести текст. А вот как его потом вывести в столбик? Есть тут кто знает ассемблер?

AlexZir 09.12.2010 09:41

По идее, вам нужно загружать в регистры видеопамяти не все символы сразу, а по 2 -каждый символ текста сопровождать символом конца строки и передавать последовательности в цикле до последнего символа.

После загрузки в регистр al текущего символа вам нужно инициализировать процесс перевода на новую строку.


Часовой пояс GMT +4, время: 20:49.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.