Главная страница
Навигация по странице:

  • Содержание работы: 1. Задание 1 2. Задание 2 Задание 1. Напишите программу вывода на экран набора символов ASCII кода.

  • Задание 2. Напишите программу, запрашивающую ввод имени, а затем отображающую в середине экрана введенное имя.

  • Напишите программу вывода на экран набора символов ASCII кода. lab1 — копия. Лабораторная работа 1 Низкоуровневые языки программирования


    Скачать 17.38 Kb.
    НазваниеЛабораторная работа 1 Низкоуровневые языки программирования
    АнкорНапишите программу вывода на экран набора символов ASCII кода
    Дата05.06.2022
    Размер17.38 Kb.
    Формат файлаdocx
    Имя файлаlab1 — копия.docx
    ТипЛабораторная работа
    #570996

    Лабораторная работа № 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


    написать администратору сайта