Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2012, 21:44   #1
Stude
Новичок
Джуниор
 
Регистрация: 26.11.2012
Сообщений: 2
Сообщение Программа для архитектуры IA-32, котораая в реальном времени выводит изображение на экран в текстовом режиме (assembler)

Разработать ассемблерную программу для архитектуры IA-32, которая в реальном или виртуальном режиме выводит изображение на экран в текстовом режиме. При этом необходимо выполнить следующие шаги.

1.Разработать подпрограмму вывода шаблона с символами в точку, заданную номерами строки и колонки. Точка означает верхний левый угол шаблона фона. Вывод выполняется в виртуальном (реальном) режиме работы компьютера с использованием окна "Командная строка" или программы Far Manager или Volcov Commander.

Шаблон состоит с двух процедур: одна генерирует Х символов по горизонтали, а вторая Х символов по вертикали

2. Разработать программу на основе подпрограммы вывода шаблона, которая очищает экран, отображает на экране инициалы , т.е. Р.В.И. Работа программы завершается за нажатием кнопок которые соответствуют инициалам студента.

Компилятор используются программы MASM i LINK.

3.
Проанализировать листинг программы после ассемблирования. Выделить команды длинной 1,2 и 3 байта. Оценить время выполнения подпрограммы, принимая во внимание, что команда выполняется столько тактов, сколько ее длина в байтах.


Прошу прощения, за то что так много прошу, я совсем новичек, и тут почти сходу задали такую программу. Буду очень благодарен тому, кто уделит немного своего драгоценного времени и поможет решить это задание. Вся надежда только на вас, обещаю что буд учит и впредь н ебуду задвать таких вопросов, но сейчас вся надежда только на Вас. Зарание ОГРОМНЕЙШЕЕ СПАСИБО!
Stude вне форума Ответить с цитированием
Старый 27.11.2012, 21:11   #2
Stude
Новичок
Джуниор
 
Регистрация: 26.11.2012
Сообщений: 2
По умолчанию

Чтото на примере этой программы
Програма виводу логотипу КПІ KR.EXE
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~
; Виконується в реальному режимі IA-32
; Вихід - при натисканні клавіши s
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~
; Загальні константи
colors equ 0fh ; кольори тла (чорний) і символу (білий)
symbol equ 0b2h ; код ASCII символу
x0 equ 10 ; початкова колонка
y0 equ 4 ; початковий рядок
; сегмент стеку, досить 1 рівня підпрограм та збереження кількох регістрів
stack segment byte
dw 16 dup(?)
stack ends
; сегмент програми
code segment
assume cs:code, ds:code, ss:stack
; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~
; Підпрограма виводу СХ символів у рядку АН і колонці AL
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
SHOW proc
push ax ;збереження ах
push cx ;збереження сх
;Обчислення адреси буфера екрану з координатами [АН,AL]
; через множення ВХ=АН на 160 та додавання до AL
xor bx,bx ; bx =0
mov bl, ah
mov ah, 0
shl bx,1 ;зсув на 6 і 8 розрядів
shl bx,1
shl bx,1
shl bx,1
shl bx,1
shl ax,1
add ax,bx
shl bx,1
shl bx,1
add bx,ax
M1: ; цикл виводу строки СХ символів symbol з кольором тла і символу colors
mov al, symbol
mov ah, colors
mov ds:[bx], ax
inc bx
inc bx
loop M1
pop cx
pop ax
ret
SHOW endp
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
; Основна програма
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
begin:
; Очищення екрану. Текстовий режим (16 кольорів, екран 80х25, сегмент 0b800h)
MOV AX,0600H ;AH 06 (прокрутка вгору)
AL 00 (весь екран)
MOV BH,00h ; ;колір тла - чорний
MOV CX,0000 ;Верхня ліва позиція вікна
MOV DX,184FH ;Нижня права позиція
INT 10H ;Передача керування в BIOS
; Встановлення адреси сегменту відеобуфера в сегментний регістр DS
mov ax, 0b800h
mov ds,ax
;Вивід 5 рядків символів
;перший рядок
mov al, x0 ;колонка
mov ah, y0 ;рядок
MOV CX,1 ;довжина ланцюжка символів
call SHOW ; виклик підпрограми виводу ланцюжка символів у заданому місці екрану
add al, 3
mov cx,9
call SHOW
;другий рядок
inc ah
mov al,x0
mov cx,1
call SHOW
add al,2
call SHOW
add al,9
call SHOW
;третій рядок
inc ah
mov al,x0
inc cx
call SHOW
add al,5
mov cx,5
call SHOW
add al,6
mov cx,1
call SHOW
;четвертий рядок
inc ah
mov al,x0
call SHOW
add al,2
call SHOW
add al,3
mov cx,1
call SHOW
add al,4
call SHOW
add al,2
call SHOW
;п'ятий рядок
inc ah
mov al,x0
call SHOW
add al,3
call SHOW
add al,2
mov cx,1
call SHOW
add al,4
call SHOW
add al,2
call SHOW
; Чекаємо на натискання клавіши s
M2:
MOV AH,10h ;Функція вводу з клавіатури
INT 16H ;Виклик BIOS
mov ah,0fh ; колір символа – білий на чорному
mov ds:[bx], ax ; вивід символа на екран для контролю
xor al,'s' ; перевірка – чи то потрібний символ
jne M2 ; якщо не той символ – знову перевіряєм натискання клавіши
;вихід з програми
mov ax, 4c00h
int 21h
code ends
end begin
Stude вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа, которая выводит на экран прописные буквы латинского алфавита (assembler) Kallycta Помощь студентам 2 20.02.2012 21:56
Нужна программа, которая выводит на экран часы! gylayko Помощь студентам 4 02.12.2011 11:08
выводит на экран изображение (PASCAL) 0001 Фриланс 31 20.01.2010 18:13
Пауза в реальном режиме Doholyan Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 20.12.2009 07:32
переброс данных из Excel в Delphi в реальном режиме времени Машутка Общие вопросы Delphi 3 27.09.2008 07:19