我要了解下如何在C语言里面嵌套汇编语言的。所以想要个在C语言里面嵌套汇编语言的程序!
要不是很复杂的,有说明的,最好有两个,一个稍简单,一个稍复杂。
还要在VC++中能运行。
麻烦运行无误后再发给我。
悬赏分不是问题!!
最简单的:
#include<stdio.h>
void main()
{
int a=3,b=4,c;
_asm
{
mov eax,3
mov ebx,4
add eax,ebx
mov c,eax
}
printf("%d+%d=%d\n",a,b,c);
}
有两个错误!
追答改好了,一个错误是少了一个右方括号;
另一个错误是忘记使a[3][3]=0
# include
void main()
{
char b,c,a[4][4];
for(b=0;b<4;b++)for(c=0;c<4;c++)a[b][c]=b+c+48;
a[3][3]=0;
unsigned long m=0x142857;
_asm
{
lea ebx,a
mov eax,[ebx]
bswap eax
mov m,eax
}
printf("a%x a%s m%x",a,a,m);
}
你能不能给我说下,用C语言嵌套汇编要注意什么。什么不能用!
追答http://zhidao.baidu.com/question/27109185.html
有一点上文没有提到:C语言中的字符串(我举得例子中就是数组a)名是地址,但是汇编不认为它是地址,硬要把它当作变量来看。如果你mov ebx,c,就会出错。
同样,结构名、联合名、对象名,在C/C++中都看成地址而在内联汇编中都看成是变量。
#include
__asm
{
MOV EAX, OFFSET szWorld
PUSH EAX
MOV EAX, OFFSET szHello
PUSH EAX
MOV EAX, OFFSET szFormat
PUSH EAX
CALL printfADD ESP, 12}}
char szHello[] = "HHHHHHello";
char szWorld[] = " WWWworld";
为什么我把上面这两个数组加得很长超过一个双字的容量,为什么用这个ADD ESP,12还是没错,我还特意验证了一下跳得正确啊!!
“为什么我把上面这两个数组加得很长超过一个双字的容量”?
你为什么这样做只能问你自己。
“为什么用这个ADD ESP,12还是没错,我还特意验证了一下跳得正确啊!!”
没错不是好事情吗?
我看有错啊。首先,没有main(),其次,花括号不成对,第三,光有CALL,没有函数
那个补丁怎么弄??
你可以回答啊!我看谁答得好!
500分高分求助!!!(悬赏加追加分)玩过风色幻想4和4以前的进!_百度知 ...
菲利斯多的历史间歇曲——爱丝特尔的愿望爱丝特尔的心愿自升华第一星系以来皆未改变,那就是“创造出拟似于当初第一星系的环境与同样的因果观点,在相似进化中寻求未来,并得到自我救赎的毁灭之法”。 在找寻到救赎之道后,爱丝特尔将利用菲利斯多的力量,搭配发动于不沉之月上、由其父约伯所制的“爆缩引擎”来逆转...
C语言两道小题
X先-1得5,Y再+1得8,最后 x+y=((x-1)+(y-1))=((6-1)+(7+1))=13 所以括号内的最终值是13,就有func(13,8)给传递过去得结果 13+8=21(被输出)第二题就是个纯粹的循环问题 for(k=2;k<6;k++,k++) 中:k++,k++可以看成k=k+2;即在执行过程中k的值只可能取2,4;(k=6...
各位C语言牛人快进来啊!!! 给个大体思路即可 多谢 (悬赏财富多多...
这叫小数据库,我建议您用一个dbms模板,再嵌入vb语言,很好解决的。
电脑不知名的问题(高分悬赏,能给我解决问题的,在奖励100分!)
KAV8.0没有卸载干净,造成以上现象。程序运行时要等一会儿,说明卡巴还在起作用,卡巴8.0就是这样,新程序要运行必须要等卡巴8.0的彻底检测,所以第一次运行速度慢,另外安装卡巴8.0以后,会在网络协议里加一个协议,严重影响网速。你的每个现象都和卡巴8.0有关。其实卡巴很好用呀,为什么不用呢?...
急!因为积分有限,只能悬赏50分,不过我会过回答问题,提高分再加的!
急!因为积分有限,只能悬赏50分,不过我会过回答问题,提高分再加的! 帮我查查“我让父母感动”的作文,要交给街道办的!急!今天晚上采纳!... 帮我查查“我让父母感动”的作文,要交给街道办的!急!今天晚上采纳! 展开 5个回答 #热议# 为什么现在情景喜剧越来越少了? 手机用户3fca1 2006-02-13 · TA获得...
学习编程,用什么编程软件?
中英文不限,Java,C++,C语言,E语言,VB,汇编语言,哪个好?从零开始...考虑后期作用大,前期简单易懂...求大牛一个一个解释,悬赏200...俄QQ:2915... 中英文不限,Java,C++,C语言,E语言,VB,汇编语言, 哪个好?从零开始...考虑后期作用大,前期简单易懂...求大牛一个一个解释, 悬赏200...俄QQ:291511908...
数学题 高悬赏 好的还加分 一定要详细解说 不然不给分!
5.在浓度40%的酒精溶液中加入5千克水,浓度变为30%,再加入多少千克酒精,浓度变为50%?6.四位同学去种树,第一位同学种的树是其他同学种树总数的二分之一,第二位同学种的树是其他同学种树总数的四分之一,第三位同学种的树是其他同学种树总数的五分之一,而第四位同学刚好种了15棵。求四位同学一共种了多少...
(求算法高手!)将一个正整数表示为N个不同的正整数之和。
200分悬赏啊,我要试一试啊。首先是思路:n能被拆分成不同的整数之和 = S(1) = (n-1) + 1能被拆分成不同的整数之和 S(2) = (n-2) + 2能被拆分成不同的整数之和 。。。S(n-1) = (n-1)能被拆分成不同的整数之和 最后一步:求并集 S(n) = Union( S(1), S(2), S(...
编一段程序(只有代码段)让显示器上输出26个字母“AB...Z”. PS:可追...
For i = 1 To 1000 Step 10 '开始循环……Next i '结束循环这两条语句的作用是循环运行指令,每循环一次,i值要增加10,当i加到 1000时,结束循环。i也是一个变量,虽然没有声明i变量,程序还是认可的,VB不是C语言,每用一个变量都要声明,不声明就会报错。简单是简单了,这样做也有坏处,如果不小心打错了一个...
我有一个论坛,不知道怎么发展,请高手指点(高分悬赏)
不要因为分版不受数量的限制,就肆意的加出很多版块来,这样做的结果只能是让大家哪一个也不想去。 2、版面的书写 版面的书写要有层次,有条理。先将一个论坛划分成几个大的区域,再把大区域分成小的版面,尽量不要在版中再增加分版,那样看起来很乱,也会令发帖的用户无所适从。注意大区的摆放次序,一定要把有...