![]() |
[Assembler] Zahl aus Register in String umwandeln
Hey,
wie kann ich mit MASM32 eine Zahl aus einem Register z.b. eax in einen string umwandeln, den ich dann beispielsweise mit WriteConsole ausgeben kann? Gruß |
Re: [Assembler] Zahl aus Register in String umwandeln
Guck dir mal den Zusammenhang von den Zahlen und ihrem Ascii-Code an.
|
Re: [Assembler] Zahl aus Register in String umwandeln
hi,
bei delpih würde ich das so machen. wenn string schon im reg ist. außerdem
Delphi-Quellcode:
vielleicht hilft dirs
integer eax_reg_int;
String rsesult; asm mov eax_reg_int, eax end; rsesult := IntToStr(eax_reg_int); |
Re: [Assembler] Zahl aus Register in String umwandeln
@Mark90: Ja IntToStr gibts leider nur in Delphi. Ich schreibe grade ein natives Assembler Programm in MASM32.
@Win32.API: Mh hast du eventuell noch einen Tipp? Denn wenn ich den ASCII Code der Zahl ermittele muss ich ja Zeichenweise vorgehen. Wie kann ich die Zahl im Register in ihre Einzelteile zerlegen? |
Re: [Assembler] Zahl aus Register in String umwandeln
MOD/DIV sind deine freunde
(iVal mod 10) (iVal div 10) |
Re: [Assembler] Zahl aus Register in String umwandeln
hm, ich glaub das ist gar nicht so schwer, jeder Disassembler macht das, und zeigt Registerinhalte als Text an, nur mir fällt das jetzt auch nicht ein, ist zu lange her, dass ich ASM gemacht habe. Zacherl, durchforste doch mal Beispielcodes, die dem MASM32 beiliegen, ob da nicht was dabei ist?
|
Re: [Assembler] Zahl aus Register in String umwandeln
Zitat:
|
Re: [Assembler] Zahl aus Register in String umwandeln
Da hast du natuerlich recht, hatte es gerade nur theroretisch durchdacht und nicht auf asm uebertragen :cheers:
|
Re: [Assembler] Zahl aus Register in String umwandeln
Diese Codeschnipsel gibt schon mal eine Zahl aus:
... mov bytecount, rv(filesize,ADDR fname) ; use "filesize" procedure print "Size of WINDOWS.INC = " print str$(bytecount)," bytes",13,10 ; display the results ... Ist das die Richtung, die du suchst? |
Re: [Assembler] Zahl aus Register in String umwandeln
Ah sowas wie das str$() Makro hatte ich gesucht :) Vielen Dank. Erspart mir das selbst implementieren in diesem Falle ;)
|
Re: [Assembler] Zahl aus Register in String umwandeln
Ich hab mir extra
![]() |
Re: [Assembler] Zahl aus Register in String umwandeln
Ja da habe ich ihn auch her :D Habe nun angefangen paar von meinen alten Consolen Programmen oder Programmen ohne Oberfläche nach ASM zu portieren.
Klappt schon recht gut dafür, dass ich mich erst seit knapp 2 Wochen mit Assembler beschäftige, aber bei manchen Sachen stehe ich dann doch auf dem Schlauch. |
Re: [Assembler] Zahl aus Register in String umwandeln
code by shield
Delphi-Quellcode:
.data
zahl1 dd 123456789 .data? szMeinStr db '', 0 .code start: mov eax, zahl1 mov esi, offset szMeinStr call _dword2decstr push MB_OK push offset szMeinStr push offset szMeinStr push 0 call MessageBox push 0 call ExitProcess _dword2decstr proc ; by shield push edx push ebx push 10 pop ecx push 10 pop ebx _1: sub edx,edx div ebx add dl,30h mov byte ptr[esi+ecx-1],dl dec ecx jnz _1 pop ebx pop edx ret _dword2decstr endp end start |
Re: [Assembler] Zahl aus Register in String umwandeln
Das ist natürlich noch besser, da es weniger Overhead mitbringt =) Danke dir :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz