Вывод на экран первой части таблицы кодировки символов - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста, написать программу, которая выводит на экран первую часть таблицы кодировки символов (символы с кодами от 0 до 127). Таблица должна состоять из восьми колонок и шестнадцати строк. В первой колонке должны быть символы с кодом от 0 до 15, во второй — от 16 до 31 и т.д.

Решение задачи: «Вывод на экран первой части таблицы кодировки символов»

textual
Листинг программы
.286
.model tiny
.code
    org 100h
proga:  mov ax,0B800h
    mov es, ax
    mov ax, 600h        ; clear window
    xor cx, cx          ; upper Y,X - 0,0
    xor bx, bx      ;attr - black on black
    mov dx, 1020h   ; lower Y,X - 16,32
    int 10h
    mov di,0
    mov cx,16
    mov ax,0200h    ;attr - green on black
a1: push cx
    mov cx,16
@@: stosw
    inc ax
    add di,2
    loop    @@
    pop cx
    add di,96
    loop    a1
    mov ah,0
    int 16h
    mov ah,4Ch
    int 21h
    end proga

Объяснение кода листинга программы

Вывод на экран первой части таблицы кодировки символов:

  1. Кодировка символов начинается с 0B800h (decimal).
  2. Программа начинается с org 100h, то есть код будет размещён в сегменте с смещением 100 в памяти.
  3. Первым делом в регистр es загружается значение 0B800h, которое представляет собой сегмент кодировки символов.
  4. Далее в регистр ax загружается значение 600h (decimal), что приводит к очистке окна вывода.
  5. Затем регистры cx и bx инициализируются как 0, что означает, что в верхнем левом углу экрана (Y=0, X=0) будет расположен символ с кодом 0 (возможно, это символ возврата каретки).
  6. Регистр dx получает значение 1020h (decimal), что означает, что нижняя правая часть окна вывода (Y=16, X=32) будет использована для отображения символов.
  7. Затем выполняется функция int 10h, которая отвечает за вывод символа на экран.
  8. Переменная di инициализируется как 0, что означает, что первый символ таблицы будет выведен на экран.
  9. Затем в цикле, который выполняется 16 раз, происходит вывод символов на экран с использованием функции stosw (запись символа в видеопамять).
  10. После каждой итерации цикла значение регистра ax увеличивается на 1, что позволяет перейти к следующему символу в таблице.
  11. Значение регистра di увеличивается на 2 после каждой итерации цикла, что позволяет перейти к следующему символу в таблице.
  12. После завершения цикла значение регистра cx сбрасывается в 0, что означает, что верхний правый угол экрана (Y=0, X=32) будет использован для отображения символов.
  13. Затем выполняется функция int 16h, которая, вероятно, используется для вывода символа с кодом 16 (возможно, это символ возврата каретки).
  14. Затем выполняется функция int 21h, которая, вероятно, используется для завершения программы.
  15. Переменная ah получает значение 4Ch, что означает, что будет выполнена функция 4Ch (завершение программы).
  16. Затем выполняется функция int 21h, которая, вероятно, используется для завершения программы.
  17. Программа завершается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5
Похожие ответы