• 自己动手构造编译系统:编译、汇编与链接

    本科毕业设计结束时小范完成了一个最简单的C语言子集的编译器,生成的汇编程序经过汇编和链接后可以正确执行。研究生期间我们决定继续编译系统实现技术方向的研究工作,主要完成汇编器和链接器这两大模块。小范一...
    文章 2017-05-02 4665浏览量
  • Linux系统调用的运行过程【转】

    在系统调用出现错误的时候会把错误码写入errno全局变量。通过调用perror()函数,可以把该变量翻译成用户可以理解的错误字符串。系统调用的实现有两个特别之处: 1)函数声明中都有asmlinkage限定词,用于通知编译器...
    文章 2017-11-09 992浏览量
  • Linux系统调用的运行过程【转】

    在系统调用出现错误的时候会把错误码写入errno全局变量。通过调用perror()函数,可以把该变量翻译成用户可以理解的错误字符串。系统调用的实现有两个特别之处: 1)函数声明中都有asmlinkage限定词,用于通知编译器...
    文章 2015-05-16 763浏览量
  • What&39;s stdcall,cdcall,etc.(转)

    在Microsoft C++系列的C/C++编译器中,常常PASCAL宏来声明这个调用约定,类似的还有WINAPI和CALLBACK。stdcall调用约定声明的语法为(以前文的那个函数为例):int_stdcall function(int a,int b)stdcall的调用...
    文章 2012-08-05 1050浏览量
  • Linux系统调用详解(实现机制分析)-linux内核剖析...

    以ret_from_sys_call入口的汇编程序段在linux进程管理中起到了十分重要的作用。所有系统调用结束前以及大部分中断服务返回前,都会跳转至此处入口地址。该段程序不仅仅为系统调用服务,它还处理中断嵌套、CPU调度、...
    文章 2016-05-18 8168浏览量
  • 想成为优秀的程序员这些德不能缺

    怎么说你就怎么做。在我朝现在做软件应用,3分看技术7分看人,应用性的软件一般不追求技术上的顶级高端,出的问题多半在于人与人的交流错误上。你得做一 个擅长与人交流的工才能真正应付。当然,你要是是做手机...
    文章 2017-08-01 2195浏览量
  • cdecl、stdcall、fastcall函数调用约定区别(转)

    在Microsoft C++系列的C/C++编译器中,常常PASCAL宏来声明这个调用约定,类似的还有WINAPI和CALLBACK。stdcall调用约定声明的语法为(以前文的那个函数为例): int_stdcall function(int a,int b) stdcall的调用...
    文章 2017-11-13 1084浏览量
  • 论调用约定

    在Microsoft C++系列的C/C++编译器中,常常PASCAL宏来声明这个调用约定,类似的还有WINAPI和CALLBACK。stdcall调用约定声明的语法为(以前文的那个函数为例): int_stdcall function(int a,int b) stdcall的...
    文章 2017-11-17 874浏览量
  • 关于C和C++语言声明和定义的说明

    80386以上的32位汇编语言我没有研究过,不清楚有没有,不过,总之连接程序有个很重要的功能,就是做这种绝对地址的跳转修饰,这个修饰工作在将来exe文件调进内存时,还要做一次,因为程序每次运行,可能面临的内存...
    文章 2017-11-15 1016浏览量
  • C语言ASM汇编内嵌语法【转】

    所以当你使用高级语言C/C++写这类程序的时候,你必须让编译器也能够明白这一点,毕竟高 级语言最终要被编译为汇编代码。你可能已经注意到了,这次输出的汇编结果中,有两个符号:#APP和#NO_APP,GCC将内联汇编语 句...
    文章 2017-11-09 1130浏览量
  • VC+超级教程

    我真的发觉很多程序隐含错误的方式写表达式和基本语句,我自己也犯过类似的错误。表达式和语句都属于C++/C的短语结构语法。它们看似简单,但使用时隐患比较多。本章归纳了正确使用表达式和语句的一些规则与建议...
    文章 2005-02-27 921浏览量
  • C语言ASM汇编内嵌语法【转】

    1、_asm_asm_是GCC关键字asm的定义:#define_asm_asm_asm_或asm用来声明一个内联汇编表达式,所以任何一个内联汇编表达式都是以它开头的,是必不可少的。2、Instruction ListInstruction List是汇编指令序列。它...
    文章 2016-03-16 682浏览量
  • GCC的内嵌汇编语法

    开发一个OS,尽管绝大部分代码只需要C/C++等高级语言就可以了,但至少和硬件相关部分的代码需要使用汇编语言,另外,由于启动部分的代码有大小限制,使用精练的汇编可以缩小目标代码的Size。另外,对于某些需要被...
    文章 2012-12-10 1489浏览量
  • Android:JNI与NDK(二)交叉编译与动态库,静态库

    它把#include包含进来的.h 文件插入到#include所在的位置,把源程序中使用到的#define定义的宏用实际的字符串代替编译 编译阶段,编译器检查代码的规范性、语法错误等,检查无误后,编译器把代码翻译成汇编语言。...
    文章 2019-07-31 1832浏览量
  • 编程语言的一些基本概念

    对于C/C++来说,程序在运行时最常碰到的是两个错误:段错误,缺少库。有一个面试题,free()函数如何知道要释放多少内存?看下面的代码: int main() { int*a=malloc(4000);printf("%d",a[-1]);printf("%d",a[-2...
    文章 2017-11-07 987浏览量
  • 想成为嵌入式程序员应知道的0x10个基本问题

    应试者如给出上面的方案,这说明或者他是一个汇编语言程序员(这也许是好事)或者他是一个想进入新领域的BASIC/FORTRAN程序员。数据声明(Data declarations)5.变量a给出下面的定义 a)一个整型数(An integer)b...
    文章 2017-12-22 684浏览量
  • 开源代码分析技巧之——高效Windows源码分析

    如下调试要常备:GetLastError之ErrorCode、单步Debug调试、asm –int 3调试(内联宏汇编,int表示触发软中断,3是中断号,这个依赖于具体的操作系统。解决常规断点调试解决不了的问题,如对EXE、DLL调试,如1000次...
    文章 2019-07-11 334浏览量
  • 一种实现Win32消息处理处理函数的新方法-基于Thunk...

    同时也为我们编写一些结构良好,灵活的程序提供了手段,所有的这一切都得归功于编译器的帮助,因为编译器最终会将我们所有的这些使用这些高级技术编写的代码转换成汇编代码(或者应该说是机器),好,废话少说为好...
    文章 2017-10-09 1088浏览量
  • Web 高级着色语言(WHLSL)-为WebGPU设计的Web图形...

    使用字节格式意味着这些应用程序必须包含 JavaScript 编写的编译器,该编译器在浏览器中运行以从动态创建的着色器生成字节。这将显着增加这些网站的膨胀,并将导致更差的性能。尽管 JavaScript 是 Web 的规范...
    文章 2019-08-06 1467浏览量
  • 开源代码分析技巧之——高效Windows源码分析

    内联宏汇编&xff0c;int表示触发软中断&xff0c;3是中断号&xff0c;这个依赖于具体的操作系统。解决常规断点调试解决不了的问题&xff0c;如对EXE、DLL调试&xff0c;如1000次循环在999次挂掉的调试&xff09;笔者曾遇到Http访问能...
    文章 2021-11-08 9浏览量
  • C++笔试题目大全(笔试宝典)(不断完善中)

    (3)使用指针作为函数的参数虽然也能达到与使用引用的效果,但是,在被调函数中同样要给形参分配存储单元,且需要重复使用"*指针变量名"的形式进行运算,这很容易产生错误程序的阅读性较差;另一方面,在主调函数...
    文章 2017-08-30 1474浏览量
  • 深入探讨this指针

    但是,当高级语言被编译成计算机可以识别的机器时,有一个问题就凸现出来:在CPU中,计算机没有办法知道一个函数调用需要多少个、什么样的参数,也没有硬件可以保存这些参数(你讲看到this是一个例外)。...
    文章 2006-02-22 3354浏览量
  • Makefile

    而在链接程序时,链接器会在所有的Object File中找寻函数的实现,如果找不到,那到就会报链接错误码(Linker Error),在VC下,这种错误一般是:Link 2001错误,意思说是说,链接器未能找到函数的实现。你需要指定...
    文章 2014-07-24 728浏览量
  • Linux makefile 教程 非常详细,且易懂

    而在链接程序时,链接器会在所有的Object File中找寻函数的实现,如果找不到,那到就会报链接错误码(Linker Error),在VC下,这种错误一般是:Link 2001错误,意思说是说,链接器未能找到函数的实现。你需要指定...
    文章 2015-12-22 1128浏览量
  • Linux makefile 教程 非常详细,且易懂【转】

    而在链接程序时,链接器会在所有的Object File中找寻函数的实现,如果找不到,那到就会报链接错误码(Linker Error),在VC下,这种错误一般是:Link 2001错误,意思说是说,链接器未能找到函数的实现。你需要指定...
    文章 2016-04-20 744浏览量
  • c语言基础学习03_数据类型与运算符

    56除以8,分别取余数和商数8 56 7  0  0  770 转化为8进制的结果111 000 转化为2进制的结果-16 100  6  4  0  664 转化为8进制的结果0110 0100 转化为2进制的结果-2  100  50  0  25 0  12  1  6 ...
    文章 2017-12-15 958浏览量
  • Makefile经典教程(掌握这些足够)

    而在链接程序时,链接器会在所有的Object File中找寻函数的实现,如果找不到,那到就会报链接错误码(Linker Error),在VC下,这种错误一般是:Link 2001错误,意思说是说,链接器未能找到函数的实现。你需要指定...
    文章 2016-09-03 3650浏览量
  • Makefile详解——从入门到精通

    而在链接程序时,链接器会在所有的Object File中找寻函数的实现,如果找不到,那到就会报链接错误码(Linker Error),在VC下,这种错误一般是:Link 2001错误,意思说是说,链接器未能找到函数的实现。...
    文章 2016-06-08 1007浏览量
  • Linux内核中的内存管理浅谈

    pgtable-2level.h,即使双层映射。pgtable-2level.h实现的双层映射: 4/* 5*traditional i386 two-level paging structure: 6*/ 7 8#define PGDIR_SHIFT 22 9#define PTRS_PER_PGD 1024 10 11/* 12*the i386 is ...
    文章 2009-11-21 1397浏览量
  • VC/MFC 编程技巧大总结

    }-9 MoveWindow:一个可以移动、改变窗口位置和大小的函数 10 16进制转化成10进制小数的问题 一个读二进制文件的软件读文件 二进制文件中的一段 8F C2 F5 3C 最后变成了 0.03 请问这是怎么转换过来的?...
    文章 2014-04-30 2491浏览量
1 2 >

云产品推荐

视频直播 大数据计算服务 MaxCompute 国内短信套餐包 ECS云服务器安全配置相关的云产品 开发者问答 阿里云建站 新零售智能客服 万网 小程序开发制作 视频内容分析 视频集锦 代理记账服务 阿里云AIoT 阿里云科技驱动中小企业数字化