c语言和汇编的问题
来源:百度知道 编辑:UC知道 时间:2024/04/29 09:46:36
#include <stdio.h>
void print()
{
_asm
{
DSEG SEGMENT
MESSAGE DB 'HOW DO YUO DO',0DH,0AH,024H
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
BEGIN:
MOV AX,DSEG
MOV DS,AX
LEA DX,OFFSET MESSAGE
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CSEG ENDS
END BEGIN
}
}
void main()
{
print();
}
怎么不可以运行
用的是VC6.0
不要复制一大堆
没人看的!!
void print()
{
_asm
{
DSEG SEGMENT
MESSAGE DB 'HOW DO YUO DO',0DH,0AH,024H
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
BEGIN:
MOV AX,DSEG
MOV DS,AX
LEA DX,OFFSET MESSAGE
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CSEG ENDS
END BEGIN
}
}
void main()
{
print();
}
怎么不可以运行
用的是VC6.0
不要复制一大堆
没人看的!!
上面的仁兄 mian()不是在吗,你没看到?
VC 是可以嵌入汇编,可是你嵌入的是一个完整的汇编程序,这有些不合理吧. 试想,如果可以嵌入完整的汇编程序,那 VC 岂不是可以叫 VA(Visual Asm)了:) 你把那些定义段的伪代码去掉,然后将变量定义放在 __asm{} 前面(嵌入代码可以访问到这些变量的).然后再编译,应该没问题了:)
在VC中嵌入汇编,只需在
_asm
{
加入实现应用的汇编代码。
}
就行了。
DSEG SEGMENT
MESSAGE DB 'HOW DO YUO DO',0DH,0AH,024H
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
这些都是鸟语,vc识别不了。vc是支持嵌入汇编,不是支持汇编
可以这样写
int aaa;
_asm {
mov eax,aaa
}
_asm { }里面不能有段定义相关的伪指令,不能有中断调用,只能有mov ax,bx等基本的汇编指令,所以你的print函数编译都通不过……
你的main函数在什么地方,编译器只能从你的主函数开始处理,我都没看见你的main函数,你说编译器怎么能执行?
hehe 是不是啊,我要看一下才能回答你 的问题