Я однажды изучаю ASM, и я сделал несколько учебных пособий, и даже успешно изменил содержание учебных пособий, чтобы использовать макросы MIFM .if и. While вместо файлов MASM .if и. While.
Я решил попробовать написать что-то очень и очень простое, прежде чем продолжить работу с более продвинутыми учебниками.Я пишу генератор чисел Фибоначчи.Вот источник, который у меня есть:
.386
.model flat, stdcall
option casemap :none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\masm32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\masm32.lib
.code
start:
mov eax, 1
mov ecx, 1
_a:
push eax
add eax, ecx
pop ecx
; Jump to _b if there is an overflow on eax
; Print Values Here
jmp _a
_b:
push 0
call ExitProcess
end start
Я собираюсь проверить наличие переполнений в eax / ecx, но сейчас я просто заинтересован в отображении значений eax / ecx на экране.
Я знаю, как извлечь адрес константной строки из .data и вызвать StdOut, который был первым примером в учебном пособии hello world, но это выглядит совсем иначе (?).