以下为读书笔记,摘抄自《深入理解计算机系统》
汇编程序为程序员提供了更多处理器状态:
- 程序计数器:将要执行的下一条指令在存储器中的地址 %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等...
汇编语言是通过助记符表示的机器指令,这些助记符更便于人类理解和编写。 **1.2 特点** - **面向机器**:由于汇编语言是针对特定类型的计算机架构设计的,因此它可以直接控制硬件资源。 - **易于理解**:相较于机器...
### 汇编语言入门经典教材知识点解析 #### 一、汇编语言的由来及其特点 ...虽然汇编语言相对于高级语言来说学习门槛较高,但在某些特定领域,如嵌入式系统开发、操作系统内核编程等,汇编语言仍然具有不可替代的作用。
于是,汇编语言应运而生,它是机器语言的一种抽象表示,用助记符代替了二进制代码。例如,"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。伪指令的参数可能包括常量、变量名或表达式,如`...
在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集...
简易汇编语言指令查询器是一款专为学习和研究汇编语言设计的实用工具。它旨在帮助用户快速查找和理解各种汇编指令,提高编程效率,深入理解计算机底层工作原理。在汇编语言的世界里,每一条指令都直接对应着机器码,...
在汇编语言中,还有多种数据类型,如字节、字、双字等,每种数据类型都有其特定的存储格式和操作方式。例如,DD数据类型是双字类型,占用4个字节的存储空间。 汇编语言程序设计还需要了解汇编语言的基本概念,例如...
- **指令**:一条指令通常由操作码和操作数组成,其中操作码表示要执行的操作类型,而操作数则指示操作的对象或数据。 - **伪指令**:这些不是真正的机器指令,而是由汇编器解释并用于控制汇编过程的指令,例如定义...
2. **掌握子程序设计方法**:学习如何在汇编语言中定义和调用子程序,理解参数传递的方式,包括直接传递和通过堆栈传递。此外,还包括子程序的嵌套调用和递归调用。 3. **培养问题解决能力**:通过具体的编程任务,...
- **堆栈操作**:理解和掌握堆栈操作指令(如PUSH和POP)的执行过程及其对内存和寄存器的影响是学习汇编语言的重要部分。堆栈的正确管理和使用直接影响到程序的稳定性和性能。 #### 结论 汇编语言的学习不仅要求对...