PDA

View Full Version : مبتدی: مشکل در نمایش متن در کنسول در MASM32



Collector
شنبه 28 اردیبهشت 1392, 16:16 عصر
سلام
این کد اول باید متن در کنسول و بعد مسج باکس نمایش دهد
مسج باکس را نمایش میدهد ولی متن داخل کنسول نمایش داده نمیشود


.386
.model flat, stdcall
option casemap :none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib

.data
HelloWorld db "Hello World!", 0
oHandle DWORD ?
iHandle DWORD ?
writeLen1 DWORD ?
writeLen2 DWORD ?
bufferLen1 DWORD ?
bufferLen2 DWORD ?
buffer1 BYTE ?
buffer2 BYTE ?

.code
start:

invoke GetStdHandle, STD_OUTPUT_HANDLE
mov oHandle, eax
invoke GetStdHandle, STD_INPUT_HANDLE
mov iHandle, eax
invoke WriteConsole, oHandle, addr HelloWorld, lengthof HelloWorld, addr writeLen1, NULL

invoke MessageBoxA, NULL, addr HelloWorld, addr HelloWorld, MB_OK
invoke ExitProcess, 0
end start

Delphi Coder
پنج شنبه 02 خرداد 1392, 13:19 عصر
این به نظر درسته اصولا باید کار کنه احتمالا پارامتر کنسول رو برای دستور link توی makefile درست ننوشتید. مثلا اگر اسم فایل Simple.asm باشه فایل اجراییش به این شکل باید ساخته بشه:



\masm32\bin\ml /c /coff "Simple.asm"
\masm32\bin\Link /SUBSYSTEM:CONSOLE "Simple.obj"