Сьогодні ми розглянемо тему «Висновок на екран Assembler» і розберемо програму, яка зможе виводити на екран нашої консолі числа. Для цього нам буде потрібно вивчити кілька нових процедур, а також познайомиться з підключаються бібліотеками і системними файлами.
Згадаймо про процедурах
Для початку, я нагадаю вам, що коли ми вивчали з вами процедури Assembler. то я, підводячи підсумки, написав, що для процедур з параметрами необхідний прототип. Так, це так, але є одне але: якщо ця процедура не є стандартною, і не описана де небудь в підключається бібліотеки.
Так ось, раніше вивчена процедура ExitProcess, а також ті процедури, які ми сьогодні з вами вивчимо (WriteConsoleA, wsprintf) є стандартними (насправді такого терміну немає, але думаю так зрозуміліше), і для них не потрібно писати прототип.
Висновок на екран
А тепер перейдемо до коду:
Як ви помітили, у нас збільшилася кількість підключаються файлів. І як я вже вище написав, все вони знадобляться для того, щоб працювали процедури, які ми будемо використовувати далі в цій програмі.
Далі буде не дуже зрозуміло поки не побачимо в дії, але все ж спробую пояснити. Перше, що ми робимо, оголошуємо константу BSIZE зі значенням 15. Потім в розділі .data. там де оголошуються змінні, задаємо кілька змінних, які будуть потрібні як параметри для наших подальших процедур.
Варто відзначити змінну buf: запис dup (duplication) говорить про поспіль байт, які виділяються під змінну buf розмірністю BSIZE (15). А знак питання говорить, що значення байт заздалегідь не визначено.
Отже, поки не все зрозуміло, тому йдемо далі, тут у вас повинен скластися пазл:
Далі ми використовуємо процедуру wsprintf. Вона потрібна для того, щоб вивести наше повідомлення (саме число) в зрозумілому для нас форматі, тобто ця процедура перетворення машинного мови в людський формат. Для цього використовується змінна ifmt.
Ну і за сам висновок відповідає процедура WriteConsoleA. Вона приймає 5 параметрів, і останнім завжди повинен йти 0.
Запуск програми
А зараз я покажу вам як все це реалізувати на практиці, після написання коду.
Я створив файл fifth.asm і помістив його в папку BIN. Потім я відкриваю командний рядок, і переходжу в папку BIN за допомогою команди cd C: \ Users \ Микита \ BIN (у вас буде інший шлях, швидше за все)
Далі компілює наш файл, прописуючи команду amake.bat fifth, якщо код правильний, то буде як на фото:
Як ми бачимо, все скомпілювати без помилок, але нічого не вивелося на екран. Для того, щоб наша програма виконалася, потрібно після компіляції запустити файл з розширенням .exe (він створюється автоматично після правильної компіляції). Прописуємо в командному рядку fifth.exe, у вас повинно вийти щось подібне: