Макросы ввода/вывода
Файл io.inc определяет “команды”, которыми можно пользоваться для ввода/вывода данных. При запуске программы в консоли будут использоваться стандартный ввод и стандартный вывод.
Имя макроса |
Описание макроса |
PRINT_UDEC size, data
PRINT_DEC size, data |
Вывод числовых данных заданных параметром data в 10-чном представлении. Параметр size – число, указывающее размерность данность в байтах; допускаются значения 1, 2, 4. В качестве параметра data может выступать числовая константа, символьная константа, имя переменной, имя регистра или адресное выражение (без спецификатора размера данных в памяти). Если задается регистр большего размера, то берется заданное параметром size количество младших разрядов. PRINT_UDEC интерпретирует число как беззнаковое, PRINT_DEC — как знаковое. |
PRINT_HEX size, data |
Аналогично предыдущему, но данные выводятся в 16-чном представлении. |
PRINT_CHAR ch |
Печатается символ, заданный параметром ch. В качестве параметра может выступать численная константа, символьная константа, имя переменной, имя регистра или адресное выражение (без спецификатора размера данных в памяти). Печатается всегда содержимое 8 младших разрядов. |
PRINT_STRING data |
Печать строки текста, оканчивающейся символом с кодом 0. В качестве параметра можно передавать строковую константу, имя переменной или адресное выражение (без спецификатора размера данных в памяти). В случае печати строковой константы, наличие символа с кодом 0 в конце строки необязательно. |
NEWLINE |
Макрос переводит печать на новую строку. |
GET_UDEC size, data
GET_DEC size, data |
Ввод числовых данных в 10-чном представлении с клавиатуры. Размер вводимых данных ограничен параметром size, который задается числом (1, 2, 4). Введенные данные обрезаются соответствующим образом. Параметр data – либо имя переменной, либо имя регистра, либо адресное выражение (без спецификатора размера данных в памяти). Если задается регистр большего размера, то старшие разряды заполняются знаковым битом в случае GET_DEC и нулями в случае GET_UDEC. GET_UDEC считывает беззнаковое число, GET_DEC — знаковое. Запрещается использовать в качестве параметра регистр eSP. |
GET_HEX size, data |
Аналогично предыдущему, но данные задаются в 16-чном представлении с префиксом 0x. |
GET_CHAR data |
Аналогично предыдущему, но происходит считывание одного символа, нажатие Enter не требуется. Более того, нажатие Enter будет расцениваться как ввод управляющих символов перевода строки: 0xD 0xA в ОС Windows, 0xA в ОС *nix. Если параметр – регистр, размер которого больше 1 байта, значение считанного символа будет дополнено нулями. |
GET_STRING data, maxsz |
Ввод последовательности символов длиной не более чем (maxsz-1). Чтение последовательности останавливается на EOF или переводе строки, причем перевод строки сохраняется в буфере. В конец считанной строки добавляется символ с кодом 0. Параметр data – либо имя переменной, либо адресное выражение (без спецификатора размера данных в памяти). Параметр maxsz – регистр (io.inc версия 1.1) или числовая константа. |
Pingback: Обновление документации | Архитектура ЭВМ и язык ассемблера
Pingback: Версия nasm | Архитектура ЭВМ и язык ассемблера
Pingback: Пользователям компьютеров Macintosh | Архитектура ЭВМ и язык ассемблера
Pingback: Разработка учебных программ | Архитектура ЭВМ и язык ассемблера
Pingback: Исправление документации | Архитектура ЭВМ и язык ассемблера