当前位置: 首页 > news >正文

网站建设:上海珍岛怎么免费建设网站

网站建设:上海珍岛,怎么免费建设网站,网站服务器不稳定怎么办,网站外链接自己可以怎么做的机器字长 x86是32位系统 64是64位系统 这里的32和64#xff0c;指的都是机器字长 机器字长是 能直接进行整数/位运算的大小指针的大小(索引内存的范围) 容易与机器字长混淆的概念#xff1a;字 字 字存储字长 字是MDR寄存器的位数#xff0c;代表每个主存存储体中的存储…机器字长 x86是32位系统 64是64位系统 这里的32和64指的都是机器字长 机器字长是 能直接进行整数/位运算的大小指针的大小(索引内存的范围) 容易与机器字长混淆的概念字 字 字存储字长 字是MDR寄存器的位数代表每个主存存储体中的存储单元可以存放的数据位数 8位机 由于空间大小限制想要把集成电路做到个人主机里只能用8位字长的 16位机 8086 IBMPC 32位机 Intel x86 64位机 32位到64位中间度过了很长的时间 C语言int类型 ABI Application Binary Interface 计算机中的ABI是指应用程序二进制接口它是编译器和链接器遵守的一组规则以让编译后的程序可以正常工作。ABI里包含很多方面的内容比如函数的调用顺序、数据类型的表示、可执行文件的格式、虚拟地址空间布局等等。不同的处理器体系结构有不同的ABI规范例如X86和X86_64。ABI对于程序的兼容性和效率有重要的影响。 需求 gcc clang 编译出的程序能否互相链接 gcc 不同版本下 编译出的程序能否互相链接 C 和 C 的代码能否互相链接 实现 在linux下的 cdecl 在win32下的 stdcall 汇编 esp寄存器 计算机的esp寄存器是一个用来存储栈顶地址的寄存器。它可以指向内存单元也可以指向内存单元之间的缝隙。它的值会随着栈的入栈和出栈操作而改变。它可以帮助CPU从栈中读取数据或指针。 eip寄存器 计算机的eip寄存器是一个用来存储下一条指令地址的寄存器。它可以帮助CPU从内存中读取指令并执行。它的值会随着指令的执行而改变。它和esp寄存器的区别是esp寄存器是用来存储栈顶地址的寄存器而eip寄存器是用来存储指令地址的寄存器。 汇编指令 sub $0x18,%esp sub是减法指令它表示将两个操作数相减结果存放在第一个操作数中。$0x18是一个立即数它表示十六进制的18也就是十进制的24。%esp是一个寄存器它表示栈指针也就是指向栈顶的地址。sub $0x18,%esp表示将栈指针减去24也就是向下移动栈顶24个字节相当于在栈上分配了24个字节的空间。在32位汇编(x86架构)中机器字长为32位等于4字节也就是向下移动了6个栈帧。这个指令通常用于函数的开头为函数的局部变量或参数预留空间。 eax寄存器 计算机的eax寄存器是 一个32位的通用寄存器用于临时存储数据和内存访问。一个累加器用于在乘法和除法指令中被自动调用。一个返回函数结果的寄存器在win32中一般用于保存函数的返回值。一个可以拆分的寄存器它的低16位是axax的高8位是ah低8位是al。是64位寄存器rax的低32位 汇编指令 mov %esp%eax esp指向的地址的值移动到eax指向的地址 汇编指令 lea 0x1c(%esp),%eax lea是load effective address的缩写意思是加载有效地址。它的作用是把一个内存地址表达式的值而不是该地址处的内容存入一个寄存器。例如lea eax, [ebx4ecx]就是把ebx4ecx的结果一个地址值存入eax寄存器而不是把该地址处的数据存入eax寄存器。lea指令可以用来进行一些简单的算术运算比如乘法和加法。 lea 0x1c(%esp),%eax 就是把esp上移0x1c个地址(7个栈帧)然后把这个地址值传给eax 汇编指令 push %eax 汇编指令 push 是将源操作数复制到堆栈中同时减少栈指针 ESP 的值 就是把eax寄存器的值放到esp指向的栈帧地址然后把esp下移1个栈帧 而结合上一步lea的指令来看eax寄存器存放的是eap上移7个栈帧的地址 汇编指令 call 510 bar 把返回地址放到esp指向的位置然后esp下移1个栈帧。 寄存器 64位不再用堆栈去传递参数直接用6个参数寄存器去传递 rip寄存器 rip寄存器是一个64位的指令指针寄存器用来保存当前正在执行的指令的地址或下一条要执行的指令的地址。rip寄存器可以用来实现一种新的寻址模式称为rip相对寻址使用这个模式有效地址的计算方式变为rip指向下一条指令加上位移量。 汇编命令lea (%rdi,%rsi,1) %r9d。lea是load effective address的缩写意思是加载有效地址。它的作用是把一个内存地址计算出来然后存放到目的寄存器中2。它不会访问内存也不会改变标志位。在这个命令中%r9d是目的寄存器(%rdi,%rsi,1)是源操作数表示一个内存地址。这个地址的计算方法是把%rdi和%rsi的值相加然后乘以1即不变再加上一个偏移量如果有的话。在这里没有偏移量所以就是%rdi%rsi。所以这个命令的意思是把%rdi%rsi的结果存放到%r9d中。这个命令可能用于计算数组元素的地址或者进行简单的算术运算。 bss是计算机编程中的一个术语表示包含静态分配的未初始化变量的内存区域。bss的全称是block started by symbol源自IBM 704的汇编语言。bss区域通常不占用目标文件的空间而是由程序加载器在加载程序时分配内存。bss区域中的变量通常被初始化为零或空指针。在C语言中如果一个静态分配的对象没有显式的初始值它就会被放在bss区域。 inline assembly inline assembly是一种编译器的特性它允许在C或C程序中使用asm关键字嵌入汇编语言的源代码 。它在C中是有条件支持和实现定义的但在C中不支持。它可以使用作用域内的任何变量或函数名比单独的汇编器更方便。它通常用于提高速度经常用于系统编程。
http://www.hkea.cn/news/14421229/

相关文章:

  • 网站商业授权含义wordpress恢复旧的编辑页面
  • 素材下载网站开发文档网页设计模板html代码五四主题
  • 网站建设销售找客户话术安卓手机优化大师官方下载
  • 企业网站关键词放几个好的产品设计网站
  • 上海网站建设 润开发公司销售房产交哪些税
  • 什么网站可以做投票都匀市城乡建设局网站
  • 在元典公司做网站有合同吗wordpress 4.
  • 长沙网站建设哪里好学做ppt的网站有哪些内容
  • 遵义网络公司优化网站制作方法大全
  • 河西网站建设制作一般使用的分辨率是多少
  • 哪些域名不能够做淘宝客网站网络怎样做推广
  • 建网站一般要多少钱网站域名申请好了怎么建设网站
  • 免费空间访客100个网站招远网站建设联系电话
  • 网站自建苏州企业做网站
  • 网站维护包括哪些怎么创建一个公司网站
  • 网站建设优化兰州个人网页设计风格分析
  • 营销网站的优势是什么电商网站开发选题依据
  • 站长工具seo综合查询论坛效果图制作收费标准
  • 专做商铺中介网站wordpress最大上传2m
  • 建设一个教程视频网站需要什么资质dw公司网页制作
  • 购物网站哪个便宜涡阳哪里有做网站的
  • 自己建设网站要多久互联网公司排名情况
  • 个人备案的网站名称电子商务网站建设与维护展望
  • 专业微网站电话建网站挣钱 优帮云
  • 手机app界面怎么做网站建设 设计 优化 维护
  • 网站建设的空间选择机械网站优化
  • 保险网站 源码apicloud和uniapp哪个好
  • 网站如何做背景音乐WordPress设置用户访问个数
  • 网站优化软件推荐wordpress建站 域名
  • 网站的制作流程建设六马路小学网站