View Full Version : مبتدی: کامپایل برنامه MASM 32 در Visual C++ 2008
Collector
پنج شنبه 19 مرداد 1391, 19:36 عصر
سلام
من این برنامه را در MASM 32 تست کردم مشکلی نداشت ولی حالا در Visual C++ 2008 خطا میگیره.
#include <stdafx.h>
#include <iostream>
#include <windows.h>
void Asm(int);
void Asm()
{
__asm{
.486
.model flat, stdcall
option casemap:none
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
include \masm32\include\windows.inc
.data
MsgText db "Hello world!",0
MsgTitle db "This is a messagebox",0
.code
start:
invoke MessageBox, NULL, ADDR MsgText, ADDR MsgTitle, MB_OK or MB_ICONINFORMATION
invoke ExitProcess, NULL
end start
}
}
the king
پنج شنبه 19 مرداد 1391, 21:18 عصر
سلام
من این برنامه را در MASM 32 تست کردم مشکلی نداشت ولی حالا در Visual C++ 2008 خطا میگیره.
این asm__ صرفا یک Inline Assembly ئه، اولا یک اسمبلر کامل و تمام عیار نیست و ثانیا ساختار و Syntax اش عینا مثل Masm نیست.
شما با asm__ وسط یکسری کد ++C چند خط کد Assembly می نویسید، فقط کد، دیگه جای تعریف کردن سگمنت داده و کد و
عوض کردن مدل حافظه که نیست.
Collector
پنج شنبه 19 مرداد 1391, 21:51 عصر
این asm__ صرفا یک Inline Assembly ئه، اولا یک اسمبلر کامل و تمام عیار نیست و ثانیا ساختار و Syntax اش عینا مثل Masm نیست.
شما با asm__ وسط یکسری کد ++C چند خط کد Assembly می نویسید، فقط کد، دیگه جای تعریف کردن سگمنت داده و کد و
عوض کردن مدل حافظه که نیست.
خب من اگر بخوام از کد MASM 32 در ++C استفاده کنم باید چکار کنم.
Collector
پنج شنبه 19 مرداد 1391, 22:21 عصر
با این آموزش (http://www.csie.ntu.edu.tw/%7Ecyy/courses/assembly/08fall/lectures/handouts/MASM.pdf) تونستم کد اسمبلی رو در ++Visual C کامپایل کنم.
Delphi Coder
سه شنبه 11 مهر 1391, 01:55 صبح
با این آموزش (http://www.csie.ntu.edu.tw/%7Ecyy/courses/assembly/08fall/lectures/handouts/MASM.pdf) تونستم کد اسمبلی رو در ++Visual C کامپایل کنم.
اسمبلی که داخل سی قابل استفاده هست محدود به یک سری دستورا زبان ماشین هست. نمیشه که کل برنامه از بیخ و بن اسمبلی copy/paste کنید داخل عبارت __asm و انتظار داشته باشید کمپایل کنه.
در ضمن لینکتون جالب بود من با روشی که گفته بود تست کردم جواب داد. اینکه با IDE ویژوال استودیو میشه برنامه های MASM رو نوشت کمپایل و حتی Debug کرد برای من یکی که هیجان انگیز بود.
xman_1365_x
سه شنبه 11 مهر 1391, 18:10 عصر
اینکه با IDE ویژوال استودیو میشه برنامه های MASM رو نوشت کمپایل و حتی Debug کرد برای من یکی که هیجان انگیز بود.
این قابلیت به این دلیل هست که کدهای زبان سی با cl کامپایل میشه و با masm اسمبل میشه
پس شما میتونید ml,لینکر برای 32 و 64 بیتی رو در مسیر نصب ویژوال استادیو ببینید و دستی فایل هاتون رو اسمبل کنید.
ضمنا روش دیگه برای میکس برنامه سی و اسمبلی اینه آبجکت تولیدی توسط اسمبلی و سی رو با هم لینک میکنیم
موفق باشید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.