以下为读书笔记,摘抄自《深入理解计算机系统》
汇编程序为程序员提供了更多处理器状态:
- 程序计数器:将要执行的下一条指令在存储器中的地址 %eip
- 整数寄存器堆:8个32位的寄存器
- 条件码寄存器:记录控制流状态(if,while)等
- 浮点寄存器堆: 8个32位寄存器
访问信息:
整数寄存器堆的八个寄存器:%eax, %ecx, %edx, %ebx, %esi, %edi, %esp 栈指针, %ebp 帧指针
操作数指示符:立即数、寄存器、存储器
类型
|
格式
|
操作数值
|
名称
|
立即数
|
$Imm
|
Imm = 直接的常数数值
|
立即数寻址
|
寄存器
|
E_a
|
R[E_a] = 寄存器E_a的数据
|
寄存器寻址
|
寄存器
|
Imm
|
M[Imm] = VSS[Imm]
虚拟地址Imm处的数据
|
绝对寻址
|
寄存器
|
(E_a)
|
M[R[E_a]] = VSS[R[E_a]]
|
间接寻址
|
寄存器
|
Imm(E_b)
|
M[Imm+R[E_b]] =
VSS[Imm+R[E_b]]
|
(基址+偏移量) 寻址
|
寄存器
|
(E_b,E_i)
|
M[R[E_b]+R[E_i]]
|
变址
|
寄存器
|
Imm(E_b,E_i)
|
M[Imm+R[E_b]+R[E_i]]
|
寻址
|
寄存器
|
(,E_i,s)
|
M[R[E_i]*s]
|
伸缩化的变址寻址
|
寄存器
|
Imm(,E_i,s)
|
M[Imm+R[E_i]*s]
|
伸缩化的变址寻址
|
寄存器
|
(E_b,E_i,s)
|
M[R[E_b]+R[E_i]*s]
|
伸缩化的变址寻址
|
寄存器
|
Imm(E_b,E_i,s) |
M[Imm+R[E_b]+R[E_i]*s]
|
伸缩化的变址寻址
|
- 大小: 45.4 KB
分享到:
相关推荐
在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集...
汇编语言源程序的汇编过程是是利用汇编程序(MASM)对已编辑好的源程序文件(.ASM)进行汇编,将源程序文件中以ASCII码表示的助记符指令逐条翻译成机器码指令,并完成源程序中的伪指令所指出的各种操作,最后可以...
1.3.3 指令操作数. . . . . . . . . . . . . . . . . . . . . . . . 10 1.3.4 基本指令. . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3.5 指示符. . . . . . . . . . . . . . . . . . . . . . . . . . . ...
(相似语句记录一条即可,重点理解机器码与汇编语句的对应关系,尤其注意操作数寻址方式的形式)。 (5)观察连续存放的二进制串在反汇编成汇编语言语句时,从不同字节位置开始反汇编,结果怎样?理解 IP/EIP指明...
支持智能指导的可视化汇编语言集成开发环境,实现了汇编语言在Windows下的可视化开发。该平台主要包括以下两部分。 (1)可视化汇编语言集成开发。具体包括:① 系统集成:将编译、连接、运行和调试等分立的DOS程序...
标号:硬指令助记符 操作数,操作数 ;注释 (2)说明性语句——由伪指令构成的语句,它通常指示汇编程序如何汇编源程序: 名字 伪指令助记符 参数,参数,... ;注释 ◆执行性语句中,冒号前的标号反映该指令的...
6•C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此有人把它称为中级语言。 7•生成目标代码质量高,程序执行效率高。 8•与汇编语言相比,用C语言写的...
指令的集合 指令集 指令序列 程序 指令组成 操作码、操作数 直接执行、二进制、速度快 机器语言 助记符 汇编语言 符号化 汇编语言 高级语言代码 源程序 3V+C++ 面向对象 高级语言组成 面向对象、面向过程 高级语言...
用户可以自定义指令/微指令系统,COP2000 软件可以对用户自己定义的汇编助记符进行编译,自动生成代码/微代码。实验系统出厂时提供了完善的指令系统: 算术运算:ADD、ADDC、SUB、SUBC 逻辑运算:AND、OR、CPL 赋值...
C语言特点 语言特点 C程序结构 程序结构 基本的输入输出 程序设计语言的发展机器语言 汇编语言 高级语言 – 通用语言 fortran, basic C VB SQL Delphi Powerbuild C++ ( VC++ BC++ ) – 数据库语言 foxbase ,FoxPro ...
2、掌握 DOS 功能调用的使用方法 3、掌握汇编语言程序的调试运行过程 二、实验内容 1、将指定数据区的字符串数据以 ASCII 码形式显示在屏幕上,并通过 DOS 功能调用完 成必要提示信息的显示。 2、在屏幕上显示自己的...
16.3 使用指示符 .203 16.4 程 序 示 例 .206 16.5 小 结 .213 第十七章 文 件 操 作 .215 17.1 .Net 框架结构提供的 I/O 方式 .215 17.2 文件存储管理 .217 17.3 读 写 文 件 .222 17.4 异步文件操作...
迄今为止计算机程序设计语言的发展经历了机器语言、汇编语言、高级语言等阶段,C++语言是一种面向对象的编程语言,也属于高级语言。 1-2 面向对象的编程语言有哪些特点? 解: 面向对象的编程语言与以往各种编程...
14.选择“重新启动计算机并切换到MS-DOS方式”,在DOS提示符下键入“VER”,屏幕显示____D____。 A、DOS6.22 B、DOS7.0 C、Windows3.2 D、Windows98 15.计算机病毒主要破坏计算机系统的 ___C__ 。 A、显示器 B、软盘...
他曾在IBM工作多年,能使用多种语言进行编程(在多种机器上使用汇编语言和高级语言),设计和实现了实时闭环工业控制系统。Horton拥有丰富的教学经验(教学内容包括C、C++、Fortran、PL/1、APL等),同时还是机械、加工...
3. 条件预处理指示 4. 其它预处理特性 22. Makefile基础 1. 基本规则 2. 隐含规则和模式规则 3. 变量 4. 自动处理头文件的依赖关系 5. 常用的make命令行选项 23. 指针 1. 指针的基本概念 2. 指针类型的参数和返回值 ...
就算括号不行,操作符优先级是否能够控制计算顺序呢? 35 3.6 可是&&和||操作符呢?我看到过类似while((c = getchar()) != EOF && c != '\n')的代码…… 35 3.7 是否可以安全地认为,一旦&&和||左边的表达式...
就算括号不行,操作符优先级是否能够控制计算顺序呢? 3.6 可是&&和||操作符呢?我看到过类似while((c=getchar())!=EOF&&c!='\n')的代码…… 3.7 是否可以安全地认为,一旦&&和||左边的表达式已经决定了整个...