Вывод на экран первой части таблицы кодировки символов - 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
Объяснение кода листинга программы
Вывод на экран первой части таблицы кодировки символов:
- Кодировка символов начинается с 0B800h (decimal).
- Программа начинается с org 100h, то есть код будет размещён в сегменте с смещением 100 в памяти.
- Первым делом в регистр es загружается значение 0B800h, которое представляет собой сегмент кодировки символов.
- Далее в регистр ax загружается значение 600h (decimal), что приводит к очистке окна вывода.
- Затем регистры cx и bx инициализируются как 0, что означает, что в верхнем левом углу экрана (Y=0, X=0) будет расположен символ с кодом 0 (возможно, это символ возврата каретки).
- Регистр dx получает значение 1020h (decimal), что означает, что нижняя правая часть окна вывода (Y=16, X=32) будет использована для отображения символов.
- Затем выполняется функция int 10h, которая отвечает за вывод символа на экран.
- Переменная di инициализируется как 0, что означает, что первый символ таблицы будет выведен на экран.
- Затем в цикле, который выполняется 16 раз, происходит вывод символов на экран с использованием функции stosw (запись символа в видеопамять).
- После каждой итерации цикла значение регистра ax увеличивается на 1, что позволяет перейти к следующему символу в таблице.
- Значение регистра di увеличивается на 2 после каждой итерации цикла, что позволяет перейти к следующему символу в таблице.
- После завершения цикла значение регистра cx сбрасывается в 0, что означает, что верхний правый угол экрана (Y=0, X=32) будет использован для отображения символов.
- Затем выполняется функция int 16h, которая, вероятно, используется для вывода символа с кодом 16 (возможно, это символ возврата каретки).
- Затем выполняется функция int 21h, которая, вероятно, используется для завершения программы.
- Переменная ah получает значение 4Ch, что означает, что будет выполнена функция 4Ch (завершение программы).
- Затем выполняется функция int 21h, которая, вероятно, используется для завершения программы.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д