X86 Assembly - MASM32: Come creare una variabile di stringa vuota per trasferire l'ingresso e la stampa

StackOverflow https://stackoverflow.com//questions/10678791

Domanda

Voglio creare un programma che accetta input e stampa il risultato, ma non riesco a creare una variabile vuota che può assumere un ingresso di stringa.Ecco cosa intendo:

.data 
        emptyvar db ???? ; I don't know what to do here
.data? 
        buffer dd 100 dup(?)
.code
start:
        lea eax, buffer
        push eax
        call StdIn ; get input
        ; NOW HERE IS WHAT I DON'T KNOW WHAT TO DO:
        ; I know have input, what I want to do is print that result. But where 
        ; do I store the input and how do I print the result?
.

So che posso memorizzare un intero in una variabile vuota e potrei stamparlo, ma come posso creare una variabile di stringa vuota?

Qualsiasi aiuto sarebbe molto apprezzato,

Saluti,

progrmr

È stato utile?

Soluzione

.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


.data
msg1 db 'Please type your name',13,10,0
msg2 db 'Nice to see you ',0

.data?
buffer db 100 dup(?)
.code

start:
invoke StdOut,ADDR msg1
invoke StdIn,ADDR buffer,100 ; receive text input
invoke StdOut,ADDR msg2
invoke StdOut,ADDR buffer
invoke ExitProcess,0
END start
.

Altri suggerimenti

stdin restituisce un puntatore alla stringa.Basta pop il puntatore in EAX.[EAX] dovrebbe ora contenere il primo carattere

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top