Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Программа 1. Получение данных из командной строки

Перепайка и замена конденсаторов на плате | Ещё о командах ассемблера. | Главная > Язык ассемблера > Процедуры и функции в ассемблере | Объединение процедур, расположенных в разных модулях | Организация интерфейса с процедурой | Способы передачи аргументов в процедуру | Возврат результата из процедуры | Автор: xrnd | Рубрика: Учебный курс | 17-10-2010 | Распечатать запись | Создание локальных переменных | Пример процедуры с локальными переменными |


Читайте также:
  1. I. Кислоты, их получение и свойства
  2. I. Программа курса
  3. I. РАБОЧАЯ ПРОГРАММА
  4. II. МЕТОДИКА ОБРАБОТКИ ДАННЫХ СЕЙСМОКАРОТАЖА
  5. II.1 Использование мастера запросов для создания простых запросов с группированием данных
  6. II.2 Создание простых запросов с группированием данных в режиме конструктора
  7. III. Программа

Программа получает данные из командной строки и выводит их в небольшом windows-окне.

.486.model flat, stdcalloption casemap: none include /masm32/include/windows.incinclude /masm32/include/user32.incinclude /masm32/include/kernel32.inc includelib /masm32/lib/user32.libincludelib /masm32/lib/kernel32.lib include /masm32/macros/macros.asm uselib masm32, comctl32, ws2_32.data.codestart: call GetCommandLine; результат будет помещен в eax push 0push chr$("Command Line")push eax; текст для вывода берем из eaxpush 0call MessageBox push 0call ExitProcess end start

Код с вызовом функций можно было бы заменить кодом:

invoke GetCommandLineinvoke MessageBox, 0, eax, chr$("Command Line"), 0invoke ExitProcess, 0

invoke — это встроенный макрос для упрощения кода, и при компиляции всё это преобразуется в ассемблерные команды.

Т.е. код

invoke MessageBox, 0, eax, chr$("Command Line"), 0

эквивалентен коду

push 0push chr$("Command Line")push eaxpush 0call MessageBox

Стек — это удобное место для хранения информации. Чаще всего он используется при вызове функций.

Все WinAPI-функции созданы по соглашению stdcall, то есть, передача аргументов в них производится через стек в обратном порядке. Возвращают эти функции значение в регистре eax.


Дата добавления: 2015-07-16; просмотров: 66 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Команды ENTER и LEAVE| Программа 2. Сложение двух чисел

mybiblioteka.su - 2015-2024 год. (0.005 сек.)