C语言中如何嵌入二进制代码

小草sd 2008-06-23 01:14:10
如下程序段
int main(int argc, char* argv[])
{
int m=3;
m++;
m++;
return m;
}
会有如下汇编代码对应
55 push ebp
8bec mov ebp,esp
51 push ecx
c745fc03000000 mov [ebp-0x04],0x00000003
ff45fc inc dword ptr[ebp-0x04]
ff45fc inc dword ptr[ebp-0x04]
8b45fc mov eax,[ebp-0x04]

可以将其中的一句 m++ 改成汇编语言替换如下
int main(int argc, char* argv[])
{
int m=3;
m++;
//m++;
__asm
{
inc dword ptr [ebp-0x04]
}
return m;
}

请问: 如何将这句汇编直接写成二进制代码 ff45fc ?
C语言中可以直接嵌入汇编,
如何在C语言中直接嵌入二进制代码?
...全文
139 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
geochway 2008-06-23
  • 打赏
  • 举报
回复
__emit__(0xff,0x45,0xfc);


dbger 2008-06-23
  • 打赏
  • 举报
回复
已经可以嵌入汇编啦,嵌入二进制代码有什么意义呢
资源下载链接为: https://pan.quark.cn/s/dab15056c6a5 在计算机科学领域,数字的表示常采用二进制、八进制、十进制和十六进制等不同的进制系统。C语言作为一种功能强大的编程语言,非常适合进行数学计算和数字表示处理,接下来我们将深入探讨如何利用C语言将十进制数字转换为任意进制数。进制转换的基本原理是将一个数字从一种基数转换为另一种基数,例如从十进制转换到二进制,就是将十进制数分解成二的幂的和,而任意进制转换的原理相同,只是基数变为用户指定的数值 。 以下是一个用C语言实现十进制数转换为任意进制的简单示例代码: 此代码,decToAnyBase 函数接收十进制数和目标进制两个参数,通过不断除以基数并记录余数,生成一个逆序的字符数组,再从数组末尾开始输出每个字符,形成最终的进制表示 。在main函数,设定一个十进制数num和目标进制base,然后调用decToAnyBase函数并打印结果 。为使代码更具通用性,可添加错误检查,确保输入的基数在2到36之间,因为字符数组“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”只包含36个字符 。运行此程序时,可改变base变量的值,实现不同进制的转换 。 此方法不仅适用于教育环境的作业,还可用于实际项目,如数据编码或解析用户输入的数字 。通过理解和运用C语言的基础知识,如整数除法、模运算和字符数组,可构建出一个灵活的函数,将十进制数转换为任意进制 。这有助于学习编程逻辑,加深对数字系统和进制转换的理解 。在实践,可将此功能嵌入更复杂的系统,用于处理各种数字表示和转换需求 。

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧