@ccode_new: Geiler Codeccode_new hat geschrieben:Code: Alles auswählen
;Ich finde PureBasic gut, ... OpenConsole() PrintN("") EnableASM MOV rax,l_out_str MOV rcx,rax CALL qword [PB_PrintN] DisableASM Input() CloseConsole() End DataSection out_str: !dw 0x49, 0x63, 0x68, 0x20, 0x66, 0x69, 0x6e, 0x64, 0x65, 0x20, 0x50, 0x42, 0x20, 0x67, 0x75, 0x74, 0x2c !dw 0x20, 0x77, 0x65, 0x69, 0x6c, 0x20, 0x65, 0x73, 0x20, 0x65, 0x69, 0x6e, 0x65, 0x6e, 0x20, 0x49, 0x6e !dw 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x72, 0x20, 0x67, 0x69 !dw 0x62, 0x74, 0x2e, 0 EndDataSection
Um mein Verständnis zu ASM zu verbesssern habe ich ein paar Fragen
1. Du kopierst l_out_str in Register rax. Warum fängt es mit l_ an? Das Label heisst doch nur out_str. Warum also mit l_ ?
2. Du kopierst von rax in rcx. Dh in beiden Registern stehen beide Inhalte. Ist das notwendig zwei Register mit dem selben Inhalt zu schreiben?
3. Wie hast du herausgefunden dass man den ASM Code so schreiben muss damit es genauso funktioniert wie wenn man PrintN(..) aufruft?
__________________________________________________
Thread geteilt
Was findet ihr an PB gut ?>Assembler-Fragen
Offtopic>Allgemein
06.10.2018
RSBasic