以下为读书笔记,摘抄自《深入理解计算机系统》
汇编程序为程序员提供了更多处理器状态:
- 程序计数器:将要执行的下一条指令在存储器中的地址 %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
分享到:
相关推荐
注释],其中标号是指令的符号地址,操作码和操作数是用汇编语言指令表示的指令部分,注释是对该语句在本程序中的功能的说明。 指示性语句的格式为:[名字/变量] 命令 [参数] [;注释],其中命令指示汇编程序进行...
- 每个指令通常由操作码和操作数两部分组成,操作码指示CPU执行何种操作,操作数则指明参与运算的数据或地址。 3. **寄存器**: - CPU内部的寄存器是存储数据和指令的地方,如AX、BX、CX、DX、SP、BP、SI、DI等...
### 汇编语言入门经典教材知识点解析 #### 一、汇编语言的由来及其特点 ...虽然汇编语言相对于高级语言来说学习门槛较高,但在某些特定领域,如嵌入式系统开发、操作系统内核编程等,汇编语言仍然具有不可替代的作用。
于是,汇编语言应运而生,它是机器语言的一种抽象表示,用助记符代替了二进制代码。例如,"ADD"代表加法操作,"MOV"代表数据移动。尽管汇编语言比机器语言更容易理解,但它仍然与具体的硬件平台紧密相关,不同架构的...
综上所述,AT&T汇编语言与INTEL汇编语言之间存在显著的语法差异,这些差异主要涉及大小写、操作数赋值方向、前缀、间接寻址语法、后缀等方面。同时,GCC内嵌汇编提供了一种高效且灵活的方式,使得高级语言程序员能够...
汇编语言使用助记符来代表机器指令的操作码,使用符号来代表机器指令的操作数,从而使程序更加易于编写和理解。本章节主要讨论8086汇编语言程序设计的基本概念、语句、伪指令、运算符以及汇编语言程序设计实例。 ...
2. **汇编语言**:汇编语言通过英文助记符表示机器指令,便于程序员编写和阅读。汇编语言程序需要经过编译程序转化为机器语言才能执行。它的特点是: - 面向硬件,程序员需了解MCS-51硬件结构。 - 助记符指令与...
### pc汇编语言中文学习文档知识点总结 #### 一、基础知识概述 **1. 数制** - **十进制**: 我们日常生活中最常用的数制,基于10的基数,每一位可以是0到9之间的数字。 - **二进制**: 计算机内部使用的数制,基于2...
操作码指示要执行的操作,而操作数指定参与运算的数据及结果的存储位置。由于机器语言与特定的CPU架构紧密相连,不同类型的CPU具有不同的机器指令集,因此编写出来的程序在不同的CPU上可能无法运行。 汇编语言的...
- `Tip1`、`Tip2` 和 `Tip3` 分别是请求用户输入第一个操作数、操作符和第二个操作数的提示。 - `Result` 和 `Error` 用于显示结果或错误信息。 - `Quit` 提示用户是否继续或退出程序。 **3. 堆栈段定义** 堆栈段...
操作数和参数在汇编语言中也很关键。操作数是处理器指令的一部分,可以是立即数、寄存器或存储器地址。例如,`MOV CX,0`的两个操作数分别是CX寄存器和立即数0。伪指令的参数可能包括常量、变量名或表达式,如`...
在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集...
用户仅需输入汇编指令的助记符或关键字,系统即可返回相关的指令信息,包括但不限于操作码、操作数、功能描述以及使用示例。例如,输入"MOV",系统能迅速定位到数据传输指令的详细说明,并提供相关的汇编代码样例。...
在汇编语言中,还有多种数据类型,如字节、字、双字等,每种数据类型都有其特定的存储格式和操作方式。例如,DD数据类型是双字类型,占用4个字节的存储空间。 汇编语言程序设计还需要了解汇编语言的基本概念,例如...
- **指令**:一条指令通常由操作码和操作数组成,其中操作码表示要执行的操作类型,而操作数则指示操作的对象或数据。 - **伪指令**:这些不是真正的机器指令,而是由汇编器解释并用于控制汇编过程的指令,例如定义...
2. **掌握子程序设计方法**:学习如何在汇编语言中定义和调用子程序,理解参数传递的方式,包括直接传递和通过堆栈传递。此外,还包括子程序的嵌套调用和递归调用。 3. **培养问题解决能力**:通过具体的编程任务,...
- **堆栈操作**:理解和掌握堆栈操作指令(如PUSH和POP)的执行过程及其对内存和寄存器的影响是学习汇编语言的重要部分。堆栈的正确管理和使用直接影响到程序的稳定性和性能。 #### 结论 汇编语言的学习不仅要求对...