使用TURBO C++的内嵌汇编应注意的问题
11-08 12:37:21软件技巧
浏览次数:479次
标签:软件技巧大全,http://www.duosi8.com
使用TURBO C++的内嵌汇编应注意的问题,
首先,内嵌汇编是宏汇编的子集,有很多的宏汇编命令这里并不支持,例如所有的宏指令、所有的段指令以及很多的伪指令。这需要在使用中慢慢地了解。这里不再一一列出。
其次是标号的使用,这是一个在使用中普遍遇到的问题,例如以下程序段:
......
asm{
mov cx,100
label:
mov ax ,[bp+si]
inc si
inc ax
mov [bp+si],ax
loop label
}
......
该程序段将会出现编译错,编译器给出以下错误信息:
label not defined.
这样使得一些编程人员误以为内嵌汇编不支持标号的使用,但是不使用标号又会使编程变得极不方便,其实只要将标号移出asm标识符作用区即可,修改后程序段如下;
......
asm{
mov cx,100
}
label:
asm{
mov ax,[bp+si]
inc si
inc ax
mov[bp+si],ax
loop label
}
......
这样再编译就正确通过了。
第三、用内嵌汇编构造函数时应注意的问题:
1.环境的保存与恢复:
在C++语言中,调用环境的保存与恢复是在函数体外部来完成的,所以内嵌汇编并不需要保存环境,这样可以节省一些代码。
2.参数的传递与使用:
C++语言是利用堆栈来传递参数的,其传递规则在很多文章中都有详细的介绍,这里不再多说。但是其实用内嵌汇编来构造函数并不需要知道该规则,直接使用函数说明中的形参名即可。如下例:
......
void func(int i,int j){
asm{
mov ax,j
add ax,i
}
}
......
这样就方便多了。
3.函数的返值:
C++函数返值符合MICRO SOFT标准,这里不再描述。
以上就是在TURBO C++内嵌汇编中应注意的一些问题,希望能给读者一些启发。
(北京大学 赵前、杜军)
首先,内嵌汇编是宏汇编的子集,有很多的宏汇编命令这里并不支持,例如所有的宏指令、所有的段指令以及很多的伪指令。这需要在使用中慢慢地了解。这里不再一一列出。
其次是标号的使用,这是一个在使用中普遍遇到的问题,例如以下程序段:
......
asm{
mov cx,100
label:
mov ax ,[bp+si]
inc si
inc ax
mov [bp+si],ax
loop label
}
......
该程序段将会出现编译错,编译器给出以下错误信息:
label not defined.
这样使得一些编程人员误以为内嵌汇编不支持标号的使用,但是不使用标号又会使编程变得极不方便,其实只要将标号移出asm标识符作用区即可,修改后程序段如下;
......
asm{
mov cx,100
}
label:
asm{
mov ax,[bp+si]
inc si
inc ax
mov[bp+si],ax
loop label
}
......
这样再编译就正确通过了。
第三、用内嵌汇编构造函数时应注意的问题:
1.环境的保存与恢复:
在C++语言中,调用环境的保存与恢复是在函数体外部来完成的,所以内嵌汇编并不需要保存环境,这样可以节省一些代码。
2.参数的传递与使用:
C++语言是利用堆栈来传递参数的,其传递规则在很多文章中都有详细的介绍,这里不再多说。但是其实用内嵌汇编来构造函数并不需要知道该规则,直接使用函数说明中的形参名即可。如下例:
......
void func(int i,int j){
asm{
mov ax,j
add ax,i
}
}
......
这样就方便多了。
3.函数的返值:
C++函数返值符合MICRO SOFT标准,这里不再描述。
以上就是在TURBO C++内嵌汇编中应注意的一些问题,希望能给读者一些启发。
(北京大学 赵前、杜军)
,使用TURBO C++的内嵌汇编应注意的问题
- ·上一篇:IP限制的投票活动怎么刷票
- ·下一篇:如何让关键字排名比较靠前
《使用TURBO C++的内嵌汇编应注意的问题》相关文章
- › 使用TURBO C++的内嵌汇编应注意的问题
- 在百度中搜索相关文章:使用TURBO C++的内嵌汇编应注意的问题
tag: 软件技巧,软件技巧大全,电脑学习 - 软件技巧
热门推荐
- · 为何QQ总弹出安全登录验证2则
- · 多媒体升级时常见故障的处理
- · 利用硬盘驱动器号制作防扩散FOXPRO程序
- · 高速视频转换借力CUDA
- · 在KMPlayer中手动切换解码器
- · 如何突破IP加MAC绑定
- · 如何让ACDSee成为默认的图片浏览器
- · SnagIt连续抓以多个窗口
- · SnagIt直接截取灰度图片
- · Nero快速制作精美的光盘封面
- · 完美卸载XP快速卸载顽固软件
- · VoptXP测试驱动器性能
- · VirturlDriver让虚拟光驱开机时自动加载
- · 通过递归调用来搜索文件
- · AutoCAD复制粘贴图纸导致死机
- · 监控软件导致QQ无法登录
- · 提高WindowsXP启动速度的方法
- · Office 2007无法正常卸载怎么办
- · 如何用批处理一次建立或删除多个目录
- · 教你Windows百毒不侵的13个妙招
- · ATI显卡在线看电影时花屏应该如何解决