Чем заканчивается программа end clrscr

Функция clreol() очищает строку от текущей позиции курсора и до конца строки активного окна. Позиция курсора не изменяется.

Функция clrscr() полностью очищает активное текстовое окно и помещает курсор в левый верх­ний угол (1,1).

Следующая программа иллюстрирует использование функций clreol ( ) и clrscr ( ) :
#include
int main ( void )
{
register int i ;
gotoxy ( 10 , 10 ) ;
cprintf ( «This is a test of the clreol() function.» ) ;
getch ( ) ;
gotoxy ( 10 , 10 ) ;
clreol ( ) ;
for ( i = 0 ; i < 20 ; i ++ ) cprintf ( «Hello there n r » ) ;
getch ( ) ;

/* очистка экрана */
clrscr ( ) ;
return 0 ;
}

Источник: www.c-cpp.ru

Чем заканчивается программа end clrscr

Помогите решить тест.

Что называется алгоритмом?
а) Алгоритм — описание последовательности действий (план), строгое исполнение которых приводит к решению поставленной задачи за конечное число шагов.

I LOVE YOU program in C Language || #shorts || #CloudCODE

б) Алгоритм — описание последовательности действий (план), для решения задачи.

в) Алгоритм — примерный план для решения задачи.

В каком разделе происходит описание переменных?
а) const

Укажите ключевое слово, которым заканчивается программа?
а) END

Оператор цикла с предусловием в Паскале имеет следующий формат:
а) Write do ;

Какая строка из перечисленных описывает символьную переменную на языке Паскаль:
а) Var x: integer;

Источник: vashurok.com

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Cancel Create

masm / doc / macroces_description_ru.md

  • Go to file T
  • Go to line L
  • Copy path
  • Copy permalink

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Cannot retrieve contributors at this time
524 lines (412 sloc) 33.4 KB

  • Open with Desktop
  • View raw
  • Copy raw contents Copy raw contents Copy raw contents

Copy raw contents

Описание макросов используемых в учебном курсе

  1. Общая информация
  2. Список макрокоманд
  1. exit — макрокоманда выхода из программы
  2. ClrScr — макрокоманда очистки окна консоли
  3. ConsoleTitle — макрокоманда задания заголовка окна консоли
  4. outstr, outstrln — макрокоманда вывода строки текста
  5. inputstr — макрокоманда ввода строки
  6. inchar — макрокоманда ввода символа с клавиатуры
  7. Readkey — макрокоманда ввода символа без эха и контроля
  8. outchar, outcharln — макрокоманда вывода символа на экран
  9. inint, inintln — макрокоманда ввода целого числа
  10. outint, outintln и outword, outwordln — макрокоманды вывода целого значения
  11. newline — макрокоманда перехода на новую строку
  12. flush — макрокоманда очистки буфера ввода
  13. pause — макрокоманда задания паузы с ожиданием ввода
  14. ConsoleMode — макрокоманда переключения режима ввода
  15. GotoXY — макрокоманда перемещения курсора
  16. WhereX, WhereY — макрокоманды определения позиции курсора
  17. SetTextAttr — макрокоманда смены текущих цветов фона и символов
  18. MsgBox — макрокоманда вывода окна сообщения
  1. new — макрокоманда порождения динамической переменной

Макросы подключаются путём указания в начале файла с ассемблерным кодом include console.inc. На самом деле сама реализация макросов лежит в каталоге include в файле io.inc.

❌Программы по удалению других программ | ЛУЧШИЕ деинсталляторы!

Имя макрокоманды не является служебным именем, поэтому большие и маленькие буквы в них различаются, однако для удобства программирования при описании соответствующих макроопределений иногда объявлены синонимы таких имён, например, у имени макрокоманды gotoxy есть синонимы gotoXY и GotoXY.

Все макрокоманды вывода (outchar, outint, outstr, gotoxy, msgbox и др.) не портят регистры и флаги. Макрокоманды ввода (inchar, inint, readkey и др.) не изменяют регистры (за исключением тех, на которых они возвращают результат), флаги меняет только макрокоманда inint, она устанавливает определённые флаги в соответствие с результатом своей работы.

Читайте также:
Как снять пароль с телефона без программ

exit — макрокоманда выхода из программы

Формат: exit

Действие этой макрокоманды эквивалентно выходу на завершающей end. в программе на Паскале. Макрокоманда exit немедленно завершает выполняющуюся программу. Если программа была запущена не из консоли (консольного окна), весь вывод тут же будет потерян. Поэтому при запуске программы на счёт из Windows Explorer, непосредственно указывая в окошке с «папками» и файлами исполняемый файл .exe, полезно перед этой макрокомандой поставить либо макрокоманду pause для задержки окончания работы программы, либо выдавать окно сообщений MsgBox.

Следует помнить, что любая ассембленрная программа должна в конце концов вызвать системный вызов exit, обращение к которому как-раз реализовано внутри макроса exit.

ClrScr — макрокоманда очистки окна консоли

Формат: ClrScr

Она эквивалентна вызову процедуры ClrScr языка Free Pascal. Имеет короткий синоним Cls.

ConsoleTitle — макрокоманда задания заголовка окна консоли

Формат: ConsoleTitle Title

Эта макрокоманда меняет заголовок консольного окна. Текст заголовка используется диспетчером задач (процессов) Windows для идентификации задачи в списке выполняемых приложений. В качестве параметра может использоваться как непосредственный операнд-текст, так и адрес текста.

outstr, outstrln — макрокоманда вывода строки текста

Формат: outstr[ln] text

Эта макрокоманда выводит на экран строку текста, определяемую своим параметром. В качестве параметра может использоваться как непосредственный операнд-текст, так и адрес текста.

Как и в Паскале, добавление к имени макрокоманды окончания ln приводит к переходу после вывода на начало новой строки.

.data T db «Hello, «»World»» !»,0 ;Текст: Hello, «World» !,0 .code outstrln «Привет, мир!» outstr offset T mov eax, offset T outstr eax outstrln ‘Don»t do that!’ lea eax, T[7] outstrln eax ;Вывод «World» !

Текст может заключаться как в двойные, так и в одинарные кавычки (апострофы). В строку выводимого текста можно вставлять через запятые числовые коды любых символов, например:

outstr «Первая строка»,13,10,»Новая строка auto»> inputstr — макрокоманда ввода строки

Формат: inputstr buf, Len [,text]

Макрокоманда вводит одну строку со стандартного потока ввода. В качестве первого параметра задаётся адрес буфера для ввода текста, а в качестве второго параметра (в формате i32, r32 или m32) – максимально допустимая длина вводимого текста. В качестве необязательного третьего параметра можно задать строку-приглашение ко вводу, формат этого последнего параметра такой же, как и в макрокоманде outstr.

В буфер помещается текст из стандартного потока stdin длиной не более Len или до конца введённой строки (без символов конца строки #13 и #10). Текст в буфере будет заканчиваться нулевым символом, поэтому длина буфера должна быть по крайней мере на единицу больше Len. Действие этой макрокоманды похоже на ввод строки S в языке Free Pascal:

var S:string[buf-1];

Реальное число введённых символов (без учёта нулевого символа) возвращается на регистре EAX, например:

.data Buf db 128 dup (?) T db «Текст не длиннее 127 символов=»,0 .code inputstr offset Buf, 128, offset T outwordln eax,, «Длина введённого текста auto»> inchar — макрокоманда ввода символа с клавиатуры

Формат: inchar op1[,text]

Ограничение: при макроподстановке выводится фатальная диагностика об ошибке при попытке ввода в регистр-указатель вершины стека. Недопустимо:

inchar [e]sp

Вводит в буферизованном режиме один символ с клавиатуры. То есть вводится текст до перевода строки, а затем по символьно выдаётся программе.

Операнд op1 может иметь формат r8 или m8. Код (номер в алфавите) введённого символа записывается в место памяти, определяемое операндом op1. Эта макрокоманда эквивалентна оператору языка Free Pascal для ввода одного символа Read(op1). В качестве необязательного второго параметра можно задать строку-приглашение ко вводу, формат этого последнего параметра такой же, как и в макрокоманде outstr. Как обычно, из конца текстовой строки будут введены символы #13 и #10, а символы из дополнительного алфавита предваряются символом #0.

Читайте также:
Обзор современных программ переводчиков

Если по внешнему виду операнда нельзя установить его тип (и, следовательно, размер в байтах), то Ассемблер требует явно указать тип оператором ptr, например:

.data x db ? .code inchar x, «Введите один символ auto»> Readkey — макрокоманда ввода символа без эха и контроля

Формат: Readkey [text]

Выдаёт код (номер в алфавите) введённого символа. Код символа возвращается в регистре AL. Эта макрокоманда эквивалентна вызову функции

AL:=ReadKey

языка Free Pascal. В качестве необязательного параметра можно задать строку-приглашение к вводу, формат этого последнего параметра такой же, как и в макрокоманде outstr. Стоит напомнить, что, как и в языке Free Pascal, символы из дополнительного алфавита поступают в виде двух символов: символа с номером ноль и символа из дополнительного алфавита. Например, при нажатии клавиши F1 сначала ReadKey считает символ #0, а затем символ #59 (‘;’) – это код клавиши F1 в дополнительном алфавите.

outchar, outcharln — макрокоманда вывода символа на экран

Формат: outchar[ln] op1[,text]

Ограничение: К сожалению, пока макрокоманда работает неправильно, при использовании регистра ESP как базового, например:

outchar byte ptr [esp]

надо производить в две команды, например:

mov al,[esp] outchar al

Печатает символ на стандартный поток вывода. Операнд op1 может иметь формат i8, r8 или m8. Значение операнда трактуется как беззнаковое число, являющееся кодом (номером) символа в алфавите, этот символ выводится в текущую позицию экрана. В качестве необязательного второго параметра можно задать текстовую строку, которая выводится перед символом, формат этого последнего параметра такой же, как и в макрокоманде outstr.

Как и в Паскале, добавление к имени макрокоманды окончания ln приводит к переходу после вывода на начало новой строки.

Для задания кода символа удобно использовать символьную константу языка Ассемблер (например, ‘A’), тогда можно не задаваться вопросом о соответствии самих символов и их номеров в используемом алфавите. Такая константа преобразуется компилятором Ассемблера именно в код этого символа, т.е. конструкция ‘A’ полностью эквивалентна записи ord(‘A’) языка Паскаль. Например, макрокоманда outchar ‘*’ выведет символ звёздочки на место курсора. Другими словами, макрокоманда outchar эквивалентна оператору Паскаля для вывода одного символа Write(op1).

inint, inintln — макрокоманда ввода целого числа

Формат: intint[ln] op1[,text]

Считывает число в текстовом виде со стандартного потока ввода, преобразуя его в машинный формат. В качестве первого операнда op1 можно использовать форматы r8, r16, r32, m8, m16 или m32. В качестве необязательного второго операнда можно задать строку-приглашение ко вводу, формат этого последнего параметра такой же, как и в макрокоманде outstr.

Добавление к имени макрокоманды окончания ln приводит к очистке буфера ввода после чтения и эквивалентно вызову стандартной процедуры Readln языка Паскаль.

Макрокоманда вводит из стандартного потока на место первого операнда любое целое значение из диапазона –2^31..+2^32–1 (этот диапазон является объединением диапазонов знаковых и беззнаковых чисел формата двойного слова dd). При выходе вводимого значения за максимальный диапазон двойного слова макрокоманда выдаёт (предупредительную) диагностику об ошибке:

** inint: Number too big:=MaxLongint, CF:=1 **

При этом операнду присваивается значение 7FFFFFFFh (MaxLongint). Такой же результат будет и при явно заданном знаке минус и абсолютном значении введённого числа больше, чем 80000000h (MaxLongword).

В случае, если введённое число превышает размер операнда op1, то производится усечение этого числа без выдачи диагностики об ошибке.

Макрокоманда выставляет флаг CF:=0 при правильном вводе и CF:=1 при неправильном. Для правильного числа также устанавливается флаг ZF:=1, если лексема введённого числа начиналась со знака «–», иначе ZF:=0.

В отличие от Паскаля, где ограничителем лексемы целого значения во входном потоке является символ пробела, табуляции или конец строки, макрокоманда inint дополнительно считает концом целой лексемы любой символ, не являющийся цифрой. В такого «плохого» конца лексемы целого числа (когда конец был не пробельным символом) при возврате устанавливается флаг SF:=1, иначе SF:=0.

Читайте также:
Перед открытием программы убедитесь что доверяете как отключить

Например, из строки «–123ABCD» введётся число –123, во входном потоке останется строка «BCD», при этом будет: SF:=1, ZF:=1 и CF:=0.

ConsoleMode — макрокоманда переключения режима ввода

Формат: ConsoleMode

Включает и выключает перекодирование вводимого текста между кодировками cp866/сp1251. По умолчанию режим такой, какой он есть в Windows, обычно cp866.

.data buf db 128 dup (?) .code inputstr offset Buf,127,»Введите русский текст :» outstrln «Введён текст :» ConsoleMode ; Отключить перекодировку в DOS outstrln offset Buf ConsoleMode ; Включить перекодировку в DOS

GotoXY — макрокоманда перемещения курсора

Формат: GotoXY x,y

Параметры x и y могут быть форматов r8, r16, m8, m16 или i8. Действие этой макрокоманды эквивалентно выполнению оператора процедуры GotoXY(x,y) языка Free Pascal для окна консоли. При выходе x и/или y за границы окна курсор не перемещается.

WhereX, WhereY — макрокоманды определения позиции курсора

Формат: * WhereX * WhereY

Макрокоманда возвращает для WhereX номер столбца позиции курсора (1..80) и для WhereY номер строки в окне консоли. Обычно окно консоли создаётся длиной 50 строк (с возможностью прокрутки текста). Результат возвращается в регистре AL. Эта макрокоманда эквивалентна вызову функции AL:=WhereX языка Free Pascal.

SetTextAttr — макрокоманда смены текущих цветов фона и символов

Формат: SetTextAttr [colors]

Макрокоманда переключает цвет символа и фона, на котором печатается символ. Цвета задаются в палитре из 16 цветов, как и в языке Free Pascal, задаются в параметре формата i8 в виде 16*+ .

Определены имена следующих констант цветов:

цвет значение
Black 0h
Blue 1h
Green 2h
Red 4h
Bright 8h
DarkGray Bright
Cyan Blue+Green
Brown Green+Red
Magenta Blue+Red
LightMagenta Bright+Blue+Red
LightGray Blue+Green+Red
LightBlue Bright+Blue
LightGreen Bright+Green
LightRed Bright+Red
Yellow Bright+Green+Red
White Bright+Blue+Green+Red

При отсутствии параметра подразумевается выставление цвета LightGray. Действие макрокоманды эквивалентно (за исключением случая пустого параметра) оператору присваивания языка Free Pascal

TextAttr := colors
SetTextAttr 16*Blue+Yellow OutStrLn «Цвет=16*Blue+Yellow» SetTextAttr Blue OutStrLn ‘Цвет=16*Black+Blue’ SetTextAttr OutStrLn ‘Цвет=16*Black+LightGray’

MsgBox — макрокоманда вывода окна сообщения

Формат: MsgBox Caption,Message[,Style]

Эта макрокоманда выводит на экран (поверх остальных окон) небольшое окно сообщения с текстом заголовка Caption, текстом сообщения Message и кнопками ответов. Пиктограмма окна сообщений, количество и вид кнопок определяется стилем окна Style. Стиль окна определяется набором (суммой) битовых признаков, которым присвоены мнемонические имена из таблицы далее. Когда стиль опущен, предполагается MB_OK.

Имя Поведение
MB_OK кнопка «OK»
MB_OKCANCEL кнопки «OK» и «Отмена»
MB_ABORTRETRYIGNORE кнопки «Прервать», «Повтор» и «Пропустить»
MB_YESNOCANCEL кнопки «Да», «Нет» и «Отмена»
MB_YESNO кнопки «Да» и «Нет»
MB_RETRYCANCEL кнопки «Повтор» и «Отмена»,
MB_CANCELTRYCONTINUE кнопки «Отмена», «Повторить» и «Продолжить»

Пиктограмма окна задаётся битовым признаком:

Имя Иконка
MB_ICONSTOP stop
MB_ICONQUESTION quest
MB_ICONEXCLAMATION notify обычно здесь выдаётся ещё и звуковой сигнал
MB_ICONASTERISK info
MB_USERICON без пиктограммы (можно сделать свой .ico файл)

При нажатии на кнопку в регистре EAX возвращается код нажатой кнопки. Мнемонические имена этих кодов: IDOK, IDCANCEL (также, если нажать клавишу ESC или крестик закрытия окна), IDABORT, IDRETRY, IDIGNORE, IDYES, IDNO, IDTRYAGAIN, IDCONTINUE

При вводе из окна по умолчанию выбирается (если просто нажать ENTER) первая по порядку из выведенных кнопок, чтобы выбрать по умолчанию другую кнопку, надо в параметре Style задать битовый признак с номером кнопки в окне: MB_DEFBUTTON

В качестве параметров Caption и Message можно использовать как непосредственный операнд-текст, так и адрес текста.

Дополнительные макрокоманды для продвинутого уровня обучения

new — макрокоманда порождения динамической переменной

Источник: github.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru