Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Kod asm na inline asm

Ostatnio zmodyfikowano 2015-12-03 09:57
Autor Wiadomość
Szustarol
Temat założony przez niniejszego użytkownika
Kod asm na inline asm
» 2015-12-02 19:52:02
Witam, mam taki oto kod w ASM (dopiero się uczę) i chciałbym ucząc się asemblera od razu zacząć także inline

.386
.model flat, stdcall
option casemap: none

include windows.inc
include kernel32.inc
include user32.inc

includelib user32.lib
includelib kernel32.lib

.data

MC db "Witam", 0
MCo db "Pierwszy program w asm" ,0

.data?

.code
start:

push MB_OK
push offset MC
push offset MCo
push NULL
call MessageBox
push NULL
call ExitProcess

end start
Chciałbym to zapisać jako inline, jednak kompletnie nie mam pojęcia jak. Co prawda w internecie są jakieś poradniki, ale zupełnie tego nie rozumiem.
Sam robię to tak:
C/C++
int main() {
    asm(
    ".386"
    ".model flat, stdcall"
    "option casemap: none"
   
    "include windows.inc"
    "include kernel32.inc"
    "include user32.inc"
   
    "includelib user32.lib"
    "includelib kernel32.lib"
   
    ".data"
   
    "MC db " Witam ", 0"
    "MCo db " Pierwszy program w asm " ,0"
   
    ".data?"
   
    ".code"
    "start:"
   
    "push MB_OK"
    "push offset MC"
    "push offset MCo"
    "push NULL"
    "call MessageBox"
    "push NULL"
    "call ExitProcess"
   
    "end start"
    )
}
ale to kompletnie nie działa i nie wiem jak umieścić tekst który w asm jest w cudzysłowie normalnie w C++.
P-141324
j23
» 2015-12-03 09:57:43
Ktoś tu chyba nie rozumie istoty wstawek assemblerowych w C/C++. Jak chcesz pisać programy od podstaw w asmie , to użyj jakiegoś kompilatora assemblera a nie C++. We wstawkach dajesz małe fragmenty kodu, z reguły w celach optymalizacyjnych, które są częścią ciała funkcji, w której zostały wstawione.
P-141347
« 1 »
  Strona 1 z 1