Напишите программу вывода на экран набора символов ASCII кода. lab1 — копия. Лабораторная работа 1 Низкоуровневые языки программирования
Скачать 17.38 Kb.
|
Лабораторная работа № 1 Низкоуровневые языки программирования Цель работы: объяснить требования для вывода информации на экран, а также для ввода данных с клавиатуры. Содержание работы: 1. Задание 1 2. Задание 2 Задание 1. Напишите программу вывода на экран набора символов ASCII кода. .model tiny .code org 100h start: mov ax,13h int 10h mov cx,256 ;Счетчик кругов для loop mov ax,0003h ;Установка видеорижима 3, курсор в 0,0 int 10h ;и очистка экрана mov ax,0b800h mov es,ax ;Загружаем в дополнительный сегментный регистр абсол.адрес mov di,0 ;Смещение относительно адреса 0b800h mov ah,010b ;Атрибуты, цвет текста зеленый mov al,00h ;ASCII код mov es:[di],ax ;Грузим не в регистр а по адресу который наход. в регистре ;---------------------- cloop: add di,4 ;Смещение на 4 байта, чтобы выглядело нормально inc al ;Следущий ASCII код mov es:[di],ax ;Грузим по адресу в видеопамять + loop cloop ;Дальше... ;---------------------- mov ah,10h ;Ждем нажатие Any Key int 16h ret end start Задание 2. Напишите программу, запрашивающую ввод имени, а затем отображающую в середине экрана введенное имя. .model small .stack 256 .data message1 db 'Введите имя: $' message2 db 'Вы ввели имя: $' nam db 20 dup (?) .code main: mov ax,@data ;настройка ds mov ds,ax mov ax,0600h ;очистка экрана mov bh,07h mov cx,0 mov dx,184fh int 10h mov ax,0200h ;установка курсора mov bh,0h mov dh,7h mov dl,18h int 10h mov ah,09 ;вывод запроса lea dx,message1 int 21h mov si,0h go: xor ax,ax ;цикл ввода mov ah,1h int 21h mov nam[si],al inc si cmp al,13 ;если не Enter- jnz go ;продолжать mov ax,0200h ;установка курсора mov bx,0h mov dh,8h mov dl,32h int 10h mov nam[si],24h ;код символа $ lea dx,message2 ;вывод сообщения mov ah,09h int 21h lea dx,nam ;вывод имени mov ah,09h int 21h mov ah,1h ;readkey int 21h +mov ax,4c00h ;завершение программы int 21h end main |