• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите с ассемблером

  • Автор темы Автор темы Scam
  • Дата начала Дата начала

Scam

Ученик
Почётный участник
Регистрация
10 Авг 2009
Сообщения
215
Реакции
3
Баллы
0
Помогите с ассемблером

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


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

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