汇编语言期末复习

news2024/11/16 9:36:18

目录

前言

基础知识

 80x86计算机组织

80x86的寻址方式


前言

根据老师的PPT与IBM-PC汇编语言程序设计(第2版)而写,供考前突击所用。

基础知识

q 机器语言、汇编语言、高级程序语言 特性 比较
q 进位记数制与不同基数的数之间的转换
Ø 二进制、十六进制、十进制间的相互转换
q 二进制数和十六进制数运算
Ø 二进制间的加减运算、十六进制间的加减运算
q 计算机中数和字符的表示
Ø 数的补码表示、常用数字字母的 ASCII
q 几种基本的逻辑运算
Ø 与、或、非、异或的运算

这些已经掌握 。

机器语言、汇编语言、高级语言特点和区别_机器语言,汇编语言,高级语言各有什么特点-CSDN博客

汇编语言相关知识点

n 汇编语言是一种用于电子计算机、微处理器、微控制器,或其他可编程器件的 低级语言
n 最快最有效 的计算机语言,能够 直接控制硬件 的唯一语言。
n 现在汇编语言已不像其他大多数的程序设计语言一样被广泛用于程序设计,在今天的实际应用中,它通常被应用在底层硬件操作和高要求的程序优化的场合。 驱动程序、嵌入式操作系统和实时运行程序都会需要汇编语言
n 汇编语言通过 汇编程序 转换成可执行的机器代码。 

q80x86机采用目前最常用的美国信息交互标准代码ASCII来表示。这种代码用一个字节来表示一个字符,其中低7位为字符的ASCII值,最高位一般用作校验位 

 80x86计算机组织

80x86微处理器

基于微处理器的计算机系统构成

硬件(CPU、MEMORY、I/O)软件

中央处理机(CPU)

Ø 通用寄存器 AX BX CX DX SP BP DI SI
Ø 专用寄存器 IP SP FLAGS
Ø 条件码 OF SF ZF CF AF PF DF TF IF
Ø 段寄存器 CS DS SS ES

通用寄存器

q 数据寄存器:用来存放计算过程中的操作数、结果或其他信息
n AX (accumulator) :累加器,算术运算的主要寄存器
n BX base ):在计算存储器地址时,被用作基址寄存器
n CX count ):常用来保存计数值
n DX data ):数据寄存器
n
q 指针或变址寄存器:在存储器寻址时,提供偏移地址
n SP stack pointer ):堆栈指针寄存器
n BP base pointer ):基址指针寄存器
n SI source index ):源变址寄存器,自动增减的功能
n DI destination index ):目的变址寄存器,自动增减的功能

 专用寄存器

q IP instruction pointer ):指令指针寄存器,用来存放代码段中的偏移地址,计算机用 IP 寄存器控制指令序列执行流程
n
q FLAGS 为标志寄存器,又称程序状态寄存器( PSW

这个SP课本在通用与专用寄存器中都有出现,不过功能一样,不再阐述。

条件码标志、控制标志、系统标志(在FLAGS标志寄存器中)

 记住!!!期中要求默写。

DEBUG(8086)用符号显示以下8个标志位的值

OF 溢出(是、否) OV(是、标志为1)NV(否、标志为0)有N的就是否定的

(对应有符号数的溢出)

DF 方向(减量/增量)DN UP(down/up)用于串处理指令、DF=1,SI/DI-=1;DF=0,SI/DI+=1

IF 中断(允许/关闭)EI DI IF=1允许CPU响应可屏蔽中断请求

SF 符号(负/正)NG PL

ZF 零(是/否)ZR NZ

AF 辅助进位(是/否)AC NA 第三位(半个字节的最高有效位)是否产生进位值

产生的条件,即出现1+1=10......

PF 奇偶(偶/奇)PE PO

CF 进位(是/否)CY NC 最高有效位(D7\D15\D31,分别对应字节、字、双字)(D7对应从右面数第8个数)(对应无符号数的溢出)

TF没有,但我们知道TF=1,则开始调试。

段寄存器

q 专用于存储器寻址,用来直接或者间接地存放段地址
q
n CS code segment ):代码段
n
n DS data segment ):数据段
n
n SS stack segment ):堆栈段
n
n ES extra segment ):附加段

存储器

n 存储单元的地址和内容
q
q 在存储器里以字节为单位存储信息。每一个字节单元给以一个唯一的存储器地址,称为物理地址。地址从 0 开始,每次加 1 。地址为无符号整数,书写格式为十六进制数。
q
n 8086 地址总线为 20 位:地址范围 00000H-FFFFFH
n 80286 地址总线为 24 位:地址范围 000000H-FFFFFFH
n 80386 地址总线为 32 位:地址范围 00000000H-FFFFFFFFH

其他略。

80x86的寻址方式

n 有效地址= 基址+(变址 x 比例因子)+位移量
q
q 位移量:存放在指令中的一个 8 位或 16 位的数(地址)
q
q 基址( base ):存放在基址寄存器中的内容,通常用来指向数据段( DS )中数组或字符串的首地址
q
q 变址( index ):存放在变址寄存器中的内容,通常用来访问数组或字符串中的某个数据
q
q 比例因子: 386 及其后继机型中的术语,值为 1 2 4 8 ,通常用变址乘以比例因子来访问元素长度为 2,4,8 字节的数组
q
q 比例因子是固定值,其他三个成分可正可负,保证有效地址灵活
q 80x86 的寻址方式 ( 与数据有关的寻址方式 )
Ø 立即寻址方式  ←  mov ax, 0001H
Ø 寄存器寻址方式 ← mov ax, bx
Ø 直接寻址方式 ← mov ax, ds:[00FFH]
Ø 寄存器间接寻址方式 ←  mov ax,[bx]
Ø 寄存器相对寻址方式 ← mov ax, [bx+1]
Ø 基址变址寻址方式 ← mov ax,[ bx+si ]
Ø 相对基址变址寻址方式 ← mov ax, adrs [ bx+si ]
Ø 比例变址寻址方式 ←  mov ax, [ esi *2]
Ø 基址 比例变址寻址方式 ← mov eax , [ ebx ][ esi *2 ]
Ø 相对基址比例变址寻址方式 ←  mov array[ ebx ][ esi *2]

记忆方案: 

以最后一个为例,array为位移量,对应命名为相对;ebx为基址寄存器,对应命名为基址;esi为变址寄存器,对应命名为变址;*2对应比例;每个结尾都叫寻址方式。所以是相对基址比例变址寻址方式 。 这就记住了后五个。

基址寻址方式,又分为直接寻址、寄存器间接寻址、寄存器相对寻址。这就记住了中间三个。

剩下两个就好记了。 

q 80x86 的寻址方式 ( 与转移地址有关的寻址方式 )
Ø 段内直接寻址
Ø JMP Label; Label 的偏移量编入机器指令中
Ø 段内间接寻址
Ø JMP EBX EBX 寄存器的值送 EIP 寄存器
Ø JMP DWORD PTR [EBX]; EBX 寄存器指向的存储器单元拷贝数据到 EIP
Ø 可使用除立即数寻址以外任意数据寻址方式
Ø 段间直接寻址
Ø JMP FAR PTR Label; Label 的段、偏移地址编入机器指令中
Ø 段间间接寻址
Ø JMP  DWORD  PTR  [ADDR]; 内存中连续两个字数据给 IP CS
Ø 可使用除立即数寻址和寄存器寻址以外任意数据寻址方式

汇编语言各种指令的解释与用法 - Sumarua - 博客园 (cnblogs.com)

汇编语言整理内容_汇编mem-CSDN博客

8086汇编PTR的含义与用法 (十分全面详细)_8086ptr-CSDN博客

OPR是操作数,CNT是操作次数 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1812734.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

可变参数以及不可变集合

可变参数: 格式: public class ArgsDemo {public static void main(String[] args) {System.out.println(getSum(1,2,3,4,5));}//可变参数public static int getSum(int...args){int sum 0;for (int arg : args) {sum arg;}return sum;} }可变参数的…

笨蛋学算法之LeetCodeHot100_1_两数之和(Java)

package com.lsy.leetcodehot100;public class _Hot1_两数之和 {//自写方法public static int[] twoSum1(int[] nums, int target) {//定义存放返回变量的数组int[] arr new int[2];//遍历整个数组for (int i 0; i < nums.length; i) {//从第二个数开始相加判断for (int j…

RK3588 Debian11进行源码编译安装Pyqt5

RK3588 Debian11进行源码编译安装Pyqt5 参考链接 https://blog.csdn.net/qq_38184409/article/details/137047584?ops_request_misc%257B%2522request%255Fid%2522%253A%2522171808774816800222841743%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&…

SpringBoot内置数据源

回顾: 在我们之前学习在配置文件当中配置对应的数据源的时候, 我们设置的数据源其实都是Druid的数据源, 并且其配置有两种方式, 当然这两种方式都需要我们导入对应的有关 德鲁伊 的依赖才行 一种是直接在开始设置为 druid 数据源类型的一种是在对应的正常的数据库配置下, 设置…

51 USART数据收发

1.0 USART实现单个数据收发 串口启动之前需要对串口进行初始化&#xff0c;主要是设置产生波特率的定时器1&#xff0c;使用串口的工作方式还是中断的工作方式具体的配置步骤如下所示。 注&#xff1a; 1&#xff1a; 确定TMOD &#xff08;定时器模式寄存器&#xff09; 确…

Thinkpad产品系列进BIOS设置(重装系统)

Thinkpad产品系列进BIOS设置&#xff08;重装系统&#xff09; 对于大多数ThinkPad笔记本产品&#xff08;T、X、W、P、L、E系列部分除外&#xff09;&#xff0c;例如T14、T15、T490、T590、X13、X390等&#xff0c;您需要在启动计算机时&#xff0c;当显示ThinkPad徽标时&…

【简单讲解Perl语言】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

46【Aseprite 作图】发光

1 通过“编辑 - 特效 - 卷积矩阵”&#xff0c;这次选择“7*7”&#xff0c;可以做出窗户的效果

【数据结构初阶】 --- 单链表

关于链表你应该先了解这些 下图描述了物理模型和逻辑模型&#xff0c;大多数常见的其实是逻辑模型&#xff0c;但这对初学者或者掌握不扎实的同学不太友好&#xff0c;所以这里我重点讲解物理模型&#xff0c;当了解了这些细节&#xff0c;以后做题或是什么就直接画逻辑模型就…

第8章 函数

第8章 函数 8.1 定义函数8.1.1 向函数传递信息8.1.2 实参和形参 8.2 传递实参8.2.1 位置实参8.2.2 关键字实参8.2.3 默认值 8.3 返回值8.3.1 返回简单值8.3.2 让实参变成可选的8.3.3 返回字典8.3.4 结合使用函数和 while 循环 8.4 传递列表8.4.1 在函数中修改列表8.4.2 禁止函数…

vue操作蓝牙教程

项目背景 想在VUE中使用蓝牙功能&#xff0c;百度了好久也尝试了好多都没法实现。 概念讲价 如果要在浏览器中使用蓝牙&#xff0c;去搜索关键字【navigator.bluetooth】&#xff0c;搜索后发现这根本不是想要的结果。 解决方法 去搜索关键字【uniappbluetoothvue】&#x…

mouceMice智能垃圾分类系统

mouceMice智能垃圾分类系统 1.成员名称和任务分配 成员认领任务陈曦实现登录、注册、检索垃圾类型和前端部分实现、连接树莓派实现socket通信传输图片杨雨佳需求分析和总体进展监督郑博文部分前端页面实现及其优化李睿初步实现深度学习算法、树莓派连接和算法效率提升范兴宇项…

【AI法官】人工智能判官在线判案?

概述 AI法官是一款为用户提供专业法律分析和判决建议的智能体应用。用户只需简要描述案情&#xff0c;AI法官便会利用其强大的法律知识和逻辑推理能力&#xff0c;快速且准确地梳理出判决结果。该应用的目标是为用户提供高效、准确、合法的判决建议。 角色任务 任务描述 作为…

【CS.SE】2024年,你应该选择计算机专业吗?详细分析与未来展望

文章目录 1. 引言1.1 背景介绍 2. 计算机相关专业的现状与挑战2. 计算机相关专业的现状与挑战2.1 行业内的就业趋势2.1.1 现有就业数据2.1.2 行业需求变化 2.2 市场饱和度与竞争2.2.1 毕业生数量增长2.2.2 薪资与职业发展 2.3 技术创新与行业发展2.3.1 新兴技术的发展2.3.2 全球…

TinyHttpd源码精读(三)

在上一章中我们一起看了如何实现静态的网页&#xff0c;在这里我们一起看Tinyhttpd最后的一部分&#xff0c;动态网页的实现&#xff1a;在这里首先声明下因为cgi脚本的支持问题&#xff0c;所以我会新建一个简单的cgi脚本然后将路径导向到这个脚本&#xff1a; 0.perl的配置&…

2024年建筑、水利交通与工程管理国际学术会议(ICAWRTEM 2024)

全称&#xff1a;2024年建筑、水利交通与工程管理国际学术会议&#xff08;ICAWRTEM 2024&#xff09; 会议网址:http://www.icawrtem.com会议地点: 广州投稿邮箱&#xff1a;icawrtemsub-conf.com 投稿标题&#xff1a;ICAWRTEM 2024ArticleTEL。投稿时请在邮件正文备注&#…

MySQL之高级特性(一)

高级特性 外键约束 InnoDB是目前MySQL中唯一支持外键的内置存储引擎&#xff0c;所以如果需要外键支持那选择就不多了。使用外键是有成本的。比如外键通常都要求每次在修改数据时都要在另一张表中多执行一次查找操作。虽然InnoDB强制外键使用索引&#xff0c;但还是无法消除这…

一夜之间,苹果杀死无数AI工具创业公司!GPT-4o深度整合进苹果

就在刚刚&#xff0c;苹果发布会WWDC2024官宣了一系列AI相关的重磅升级。 由于这一波AI升级攒的太大了&#xff0c;苹果甚至索性创造了一个新的概念——苹果智能&#xff08;Apple Intelligence&#xff09;。 如果你认为 苹果智能 Siri升级&#xff0c;那你就大错特错了。 …

分层解耦

三层架构 controller:控制层&#xff0c;接收前端发送的请求&#xff0c;对请求进行处理&#xff0c;并响应数据&#xff0c; service:业务逻辑层&#xff0c;处理具体的业务逻辑。 dao:数据访问层(Data Access Object)(持久层)&#xff0c;负责数据访问操作&#xff0c;包括数…

动态规划(多重背包问题+二进制优化)

引言 多重背包&#xff0c;相对于01背包来说&#xff0c;多重背包是每个物品会有相应的个数&#xff0c;最多可以选那么多个&#xff0c;因而对于朴素多重背包&#xff0c;需要在01背包的基础上&#xff0c;再加一层物品的循环 朴素多重背包例题 P2347 [NOIP1996 提高组] 砝…