博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
深入理解操作系统:程序机器级表示---读书笔记(一)
阅读量:4947 次
发布时间:2019-06-11

本文共 586 字,大约阅读时间需要 1 分钟。

数据格式

  由于是从16位体系结构扩展至32位的,因此Intel用术语“字(word)”表示16位数据类型。因此,称32位数据为“双字”,称64位数据为“4字”。C语言与x86-64的基本数据类型对应关系如下表所示。

C语言声明 Intel数据类型 汇编代码后缀 大小(字节)
char 字节 b 1
short w 2
int  双字 l 4
long  四字 q 8
char* 四字 q 8
float 单精度 s 4
double 双精度 l 8

  一个x86-64的中央处理器单元(CPU)包一组16个共有64位值的通用寄存器。他们的名字都以%r开头。

操作数

  大多数指令有一个或多个操作数(operand),指示出执行一个操作中要使用的源数据值,以及放置结果的目的位置。操作数被分为三种类型:

  • 第一种类型是立即数(immediate),用来表示常数值。在ATT格式的汇编代码中,立即数的书写方式是‘$’后面跟一个用标准C语言表示法表示的数字,例如,$-577或$0x1F。
  • 第二种类型是寄存器(register),它表示某个寄存器的内容。例如,%rax。
  • 第三种类型是内存引用,它会根据计算出来的地址(通常称为有效地址)访问某个内存位置。

转载于:https://www.cnblogs.com/steven-eson/p/10440372.html

你可能感兴趣的文章
Codeforces 40 E. Number Table
查看>>
CLR via C#(第3 版)
查看>>
java语法之final
查看>>
关于响应式布局
查看>>
详解ASP.Net 4中的aspnet_regsql.exe
查看>>
python 多进程和多线程的区别
查看>>
hdu1398
查看>>
[android] 网络断开的监听
查看>>
156.Binary Tree Upside Down
查看>>
MongoDB在windows下安装配置
查看>>
Upselling promotion stored procedure
查看>>
mysql编码配置
查看>>
KVM地址翻译流程及EPT页表的建立过程
查看>>
sigar
查看>>
iOS7自定义statusbar和navigationbar的若干问题
查看>>
c++ 网络编程(一)TCP/UDP windows/linux 下入门级socket通信 客户端与服务端交互代码...
查看>>
程序员如何提高影响力:手把手教你塑造个人品牌
查看>>
身份证校验原理和PHP实现
查看>>
[Locked] Wiggle Sort
查看>>
deque
查看>>