"Hello World" assembler proszę o podpowiedż

0

Witam
Niedawno zacząłem przygodę z nauką assemblera
Do pracy używam środowiska programistycznego Visual Studio 2017
mam następujący problem w początkowym programie tzw. aplikacja "Hello World"

kod:

extrn ExitProcess : proc
extrn MessageBoxA : proc

.data
szTest db "działa poprawnie!" , 0

.code

Main proc
sub rsp, 28h
xor r9, r9
lea r8, szText
lea rdx, szText
xor, rcx , rcx
call MesageBoxA
add rsp, 28h

sub rsp, 8h
xor, rcx ,rcx = 0
call ExitProcess
Main endp
end

Podczas tworzenia aplikacji w środowisku Visual Studio
wybieram nowy projekt/ aplikacja konsolowa.

Problem polega na tym iż podczas debugowania
program wyświetla następujące komunikaty:

Wątek 0x1ecc zakończył działanie z kodem 0 (0x0).
Wątek 0x2d48 zakończył działanie z kodem 0 (0x0).
Wątek 0x11b0 zakończył działanie z kodem 0 (0x0).
Program „[9420] ConsoleApplication3.exe” zakończył działanie z kodem 0 (0x0).
co w mojej ocenie świadczy o tym ,że program działa poprawnie .
Pojawia się powitalna "konsola " programowa bez deklarowanego napisu

w czym może być problem , że nie wczytuje napisu?
z góry przepraszam ,że zwracam się z tak błahym problemem

i proszę o pomoc

0

Twój kod prawdopodobnie w ogóle nie jest odpalany, tylko funkcja main zdefiniowana w pliku .c albo .cpp

0

Może warto zacząć od MIPSa?

0

Ogólnie jak opisujesz jakiś problem związany z Assemblerem to musisz wiedzieć, że ten sławny "Assembler" to kompilator, ale języka programowania Assembly - to po pierwsze.

Po drugie naucz się pisać pod jakiś sensowny Assembler, do którego jest dużo tutoriali, dokumentacji itd. Na przykład zobacz sobie co to jest NASM. Tutaj masz bardzo ciekawą pozycję od @Gynvael Coldwind - .

Po trzecie mam nadzieję, że znasz odpowiedź na pytanie dlatego się uczysz tego "Assemblera", bo teraz to jest raczej nisza niż coś co się stosuje na szeroką skalę.

Z nauką assembly trzeba uważać, bo sam miałem różne przygody z tym związane. Nie jest ekspertem od Assembly, ale już co nieco rozumiem. Dlatego jako uczeń polecam Ci zacząć od Assemblera, który ma w miarę przyjazne środowisko do nauki - naprawdę.

1

Problem polega na tym, że Visual Studio domyślnie nie próbuje w ogóle kompilować plików .asm dodawanych do solucji. Można to włączyć:

1.png

Następnie we właściwościach pliku .asm wybrać odpowiedni Item Type:

2.png

Zamiast tych dwóch kroków można też wybrać Custom Build Tool jako item type, i zdefiniować ręcznie komendę kompilującą plik. Można w ten sposób użyć innego asemblera niż MASM, np. NASM.

1 użytkowników online, w tym zalogowanych: 0, gości: 1