Прерывание 21h "Вывод текста" - Assembler
Формулировка задачи:
После не совсем удачного знакомства с двумя учебниками В.И. Юрова и О.А. Калашникова, связано было с тем что не смог найти рекомендуемые ими программы. Решил написать программу "Hello, world! " в masm32. Программа выдает ошибку в девятой строке "syntax error". Не могу понять в чем проблема ? Может проблема в компиляторе ?. Так как код в примере из книги не запускается.
*При использование регистра edх программа запускается, но вылетает с ошибкой
Код из "Ассемблер это просто" О.А. Калашников
.386 .model flat, stdcall option casemap:none .data messa db 'Hello World!$' .code start: mov ah,9 mov dx,OFFSET messa ;* int 21h int 20h end start end.
GSES segment org 100h Begin: mov ah,9 mov ds,offset Message int 21h int 20h Message db 'Hello, world!$' CSEG ends end Begin
Решение задачи: «Прерывание 21h "Вывод текста"»
textual
Листинг программы
format PE64 GUI entry start section '.text' code readable executable start: sub rsp,8*5 mov r9,0 lea r8,[_caption] lea rdx,[_message] mov rcx,0 call [MessageBoxA] add rsp,40 sub rsp,16 mov ecx,eax call [ExitProcess] section '.data' data readable writeable _caption db 'Win64 assembly program',0 _message db 'Hello World!',0 section '.idata' import data readable writeable dd 0,0,0,RVA kernel_name,RVA kernel_table dd 0,0,0,RVA user_name,RVA user_table dd 0,0,0,0,0 kernel_table: ExitProcess dq RVA _ExitProcess dq 0 user_table: MessageBoxA dq RVA _MessageBoxA dq 0 kernel_name db 'KERNEL32.DLL',0 user_name db 'USER32.DLL',0 _ExitProcess dw 0 db 'ExitProcess',0 _MessageBoxA dw 0 db 'MessageBoxA',0
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д