1.如何用Visual Studio 2008 写汇编程序
最近在上夏季小学期,在学汇编语言,关于用什么编辑环境一直很纠结。
很想找到一个比较好的IDE,但是试了几个像RadASM之类的,发现还不是很满意。于是,只能用UltraEdit或NotePad之类的文本编辑软件。
今天,课上老师讲了用Visual Studio 2008来写汇编程序,我用了一下,发现用Visual Studio确实很方便,尤其是调试功能很强大(可以运行到断点查看寄存器,或指定内存区域)。特把如何在Visual Studio 2008下配置汇编编辑环境分享给大家。
Visual Studio自带的模板是没有写ASM文件的,因此我们需要换一种方法创建项目。具体做法是,在新建项目对话框中,选择创建一个VC++的空项目。
将其命名为我们想要的名称。如何用Visual
然后将其重命名为Test.asm。这样,你就可以在打开这个文件进行编辑了。
但是如果你想不仅仅是编辑,还想直接在VS 2008中调试运行这个程序,还需要做一些项目属性的更改。首先在解决方案资源管理器中,右键单击项目,在弹出菜单中选择“自定义生成规则”。
如何用Visual
以此为例说明:在解决方案资源管理器中,右键单击项目,在弹出菜单中选择“属性”。首先,在“配置属性-Microsoft Macro Assember-General”中,将Include Paths改为你的库文件所在的文件夹,如下图所示(我的库文件在C:\Masm615\INCLUDE)目录下:如何用Visual
如何用Visual
不过比较遗憾的是,好像Visual Studio没有对*.asm文件的语法检查功能。
2.如何编写完整的汇编程序
data segment (segment和ends是一对,一定是成对出现的)
…… (这中间就是申明你需要的数据段,例如:mess db 1,2,3;其中mess只是一个名字,可以根据自己需要来,db表示每个字符占的存储空间,也可以用dw,dd,db是一个字节;后面的数据根据实际情况来)
data ends (这是数据段)
extra segment
…… (申明和数据段一样)
extra ends (这是附加段)
code_seg segment (这是代码段)
assume cs:code_seg,ds:data,es:extra (这个一定不能少,而且顺序不能换,也就是说cs一定对应代码段,后面也是相同的)
start: (start可以没有,但冒号不能少)
mov ax,data (这四句是固定的,只能根据名称不同改变data、extra的名称,其它不能变)
mov ds,ax
mov ax,extra
mov es,ax
…… (这中间就是你说的那些代码)
code_seg ends (这两句也不能少)
end start
3.用汇编语言怎么写标题
看你用什么汇编了。用WIN32的话..应该是在
CreateWindowExA proto dwExStyle:DWORD,\
lpClassName:DWORD,\
lpWindowName:DWORD,\ ;;;;;;;;;在这儿设程序名称
dwStyle:DWORD,\
X:DWORD,\
Y:DWORD,\
nWidth:DWORD,\
nHeight:DWORD,\
hWndParent:DWORD ,\
hMenu:DWORD,\
hInstance:DWORD,\
lpParam:DWORD
4.如何用VC写汇编程序
下面代码是在C语言中嵌入汇编代码实现弹出对话框:
#include
#include
char format[] = "%s %s\n";
char hello[] = "Hello";
char world[] = "world";
HWND hwnd;
void main( void )
{
__asm
{
//push NULL
//call dword ptr GetModuleHandle
//mov hwnd,eax
push MB_OK
mov eax, offset world
push eax
mov eax, offset hello
push eax
push 0//说明此处不能将前面注释掉代码处得到的hwnd压栈,否则对话框弹不出来。
call dword ptr MessageBox
}
}
5.汇编怎么写程序
其实和其它语言差不多,先定义空间
STACK SEGMENT STACK
DB 200 DUP(0)
STACK END
从0开始的,200字大小
再是数据定义
DATA SEGMENT
A DB '0'
OUTPUT DB 0DH,0AH,'PLEASE INPUT NUMBER:'
DATA END
A 和OUTPUT都是定义的量
再是开工
CODE SEGMENT
ASSUME CS:CODE,SS:STACK,DS:DATA
START:MOV AX,DATA
MOV DS,AX
.
JMP START(跳回从START继续做(循环))
CALL DUAN(调用下面地个DUAN的功能)
DUAN: PROC
..相关操作
RET
DUAN EDNP
.
CODE ENDS
END START
开工后的一个段START(相当于一个函数)可以用来做循环语句.
慢慢学吧其实入门比别的语言容易。个人感觉.
希望对你有帮助~!
6.怎么写这个汇编程序
data segment
str db "1234106789",0dh, 0ah, "$"
data ends
code segment
assume cs:code, ds:data
start:
mov ax, data
mov ds, ax
mov cx,10
mov dx, offset str
loop_w:
push dx
mov ah,9
sub dx,1
add dx,cx
int 21h
pop dx
loop loop_w
mov ax,4c00h
int 21h
code ends
end start