2012-05-21 30 views
0

我想創建一個程序,它接受輸入並打印出結果,但我無法創建一個空變量,字符串輸入。這裏是我的意思是:x86程序集 - masm32:如何創建一個空字符串變量來將輸入傳輸到並打印

.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? 

我知道我可以存儲在一個空變量的整數,我可以打印,但我怎麼可以創建一個空字符串變量?

任何幫助將不勝感激,

問候,

Progrmr

+0

這是爲什麼downvoted? – Progrmr

回答

1
.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 
+0

因此,您只需打印'buffer'變量? – Progrmr

+0

那麼你可以只打印緩衝區變量?是。 – Motes

+0

很酷,謝謝!這有幫助。 – Progrmr

0

標準輸入返回一個字符串指針。只需將Poniter推向eax即可。 [eax]現在應該包含第一個字符

+0

你重複說,直到你打印整個字符串? – Progrmr

+0

當我登上我的電腦時,我會發布代碼... –

相關問題