常用汇编指令

(arg)argument:自变量,变元

(reg)register:寄存器

(seg)segment:段寄存器

(mem)memory:存储器(内存单元?

一.各寄存器

1.数据寄存器:AX(accumulator 累加器)、BX(base address 基址寄存器 “过渡寄存器”)、CX(counter 计数器)、DX(data 数据寄存器):可拆分为L和H,将16位拆分为低八位和高八位

2.地址指针寄存器:SP(堆栈指针寄存器)、BP(基址指针寄存器)

        SP(start pointer):栈顶指针,指向栈顶

        BP(base pointer):基址指针,段地址默认在SS中,可以定位物理地址。指向哪里?一直指在最低端?

3.变址寄存器:SI、DI,用于指令间的变址寻址和间接寻址

        DI(destination source):目的变址寄存器,一般与ds连用,确定某个储存单元的地址

        SI(source index):源变址(什么是源地址?)寄存器,默认短地址和DI一样,和ds连用

        [注]:这两个属于变址寄存器.可以和bx.bp联用,但是和bx连用时,段地址在DS中,和bp联用时,段地址在SS中.也可以单独使用,单独使用时,段地址默认在DS中,想要越段使用,加上段前缀即可.

        在串指令操作中,si和ds联用,确定目标源地址,di和es(附加段寄存器)联用,确定传送的目的地址.说白了就是,分别寻址数据段和附加段.

        在串指令中,si和di具有自加和自减功能

4.段寄存器:

        CS:Code Segment 代码段

        DS:Date Segment 数据段

        ES:Extra Segment 附加段(啥时候用

        SS:Stack Segment 堆栈段

5.控制寄存器:

        IP(introduction point):指令指针寄存器,内容为下一条要执行指令的偏移地址

        FLAGS:标志寄存器

        分控制标志:CF(进位标志)、PF(奇偶标志)、AF(辅助进位标志(第四位的进位情况))、ZF(零标志)、SF(符号标志)、OF(溢出标志)
状态标志:TF(跟踪标志)、IF(中断标志)、DF(方向标志)

存储器编址规则(十六进制)
指令地址:CSX10H+IP
堆栈操作地址:SSX10H+SP
操作数地址:DS(ES)X10H+偏移地址

二.常用指令意义和规则

1.数据传递指令mov

2.运算指令:add adc(带进位加法) inc(加一) sub sbb(带借位减法) dec(减一) 

3.比较指令与转移指令

4.循环指令

5.逻辑指令:

        and:与

        or:或

        not:非

        xor:异或,常用于寄存器清零

        neg:求补,使该数变为绝对值相等,符号相反的另一数

6. 变量操作指令

7.地址相关指令:

        lea:lea ax, [bx] 传偏移地址

        lds:lea ax, [bx] 传地址指针,传给reg与ds

        les:lea ax, [bx] 传地址指针,传给reg与es(extra segment)

8.移位指令(位运算?)

9.堆栈指令:

        push

        pop

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

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

相关文章

什么是 BIO、NIO、AIO?

BIO、NIO、AIO 都是 Java 的 IO 模型 BIO (Blocking IO) 是传统的 IO 模型,它在读写数据时会阻塞线程,直到数据读写完成,适用于并发不高的场景。 NIO (Non-blocking IO) 是 Java 的新 IO 模型,它在读写数据时不会阻塞线程&#…

Flutter 中的 AnimatedPositionedDirectional 小部件:全面指南

Flutter 中的 AnimatedPositionedDirectional 小部件:全面指南 在 Flutter 中,AnimatedPositionedDirectional 是一个用于创建具有方向感知的动画定位效果的组件。它允许开发者在动画过程中动态地改变子组件的位置,并且可以指定动画的方向&a…

Android Compose 九:interactionSource 的使用

先上官方文档 InteractionSource InteractionSource represents a stream of Interactions corresponding to events emitted by a component. These Interactions can be used to change how components appear in different states, such as when a component is pressed or…

数据库技术都涵盖那些内容

数据库技术涵盖了关系型数据库(RDBMS)、非关系型数据库(NoSQL)以及数据库管理系统(DBMS)的其他方面。以下是一些我熟悉的数据库技术: 关系型数据库(RDBMS) MySQL&#…

温故而知新-Spring篇【面试复习】

温故而知新-Spring篇【面试复习】 前言版权推荐温故而知新-Spring篇IOCAOP循环依赖springboot如果要对属性文件中的账号密码加密如何实现?SpringBoot的优点Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的? 最后 前言 2023-7-31 15:…

Java RMI

RMI - 安全篇 RMI分为三个主体部分: *Client-客户端*:客户端调用服务端的方法 *Server-服务端*:远程调用方法对象的提供者,也是代码真正执行的地方,执行结束会返回给客户端一个方法执行的结果。 *Registry-注册中心…

词嵌入nn.embedding的解释

一、embedding如何处理文本 在NLP任务中,首先要对文本进行处理,将文本进行编码转换,形成向量表达,embedding处理文本的流程如下: (1)输入一段文本,中文会先分词(如jieb…

python双色球选号程序的实现与解析

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言:双色球选号游戏的魅力 二、程序设计与实现 1. 生成红色球号码 2. 生…

3.游戏中自定义数据类型的解读分析

知识来源于腾讯课堂易道云 结构的解释: 计算机里的所有东西都是用二进制表示的,二进制是数字,我们用的阿拉伯数字0-9这个数字是十进制,计算机用的是二进制只有0或1,然后都是一堆0或1的数字,游戏中怎么把这…

AD使用问题

设计流程: 1.先创建项目——添加原理图,原理图库,PCB,PCB库 2.画原理图库和封装库 主要有三种方法: (1)手动画库和封装,常常用于嘉立创查询不到的器件 (2&#xff0…

双机多网口配置同网段地址,可以通过目的IP确定接收数据的网卡吗?

环境 两台机器两网卡同网段接入同一个二层交换机。 机器A ens38 00:0c:29:a4:8b:fb 10.0.0.11/24 ens39 00:0c:29:a4:8b:05 10.0.0.12/24 机器B ens38 00:0c:29:4f:a6:c4 10.0.0.21/24 ens39 00:0c:29:4f:a6:ce 10.0.0.22/24 初始ARP表 只有管理口接口的ARP表项&#xff0c…

浙江大学数据结构MOOC-课后习题-第十讲-排序4 统计工龄

题目汇总 浙江大学数据结构MOOC-课后习题-拼题A-代码分享-2024 题目描述 测试点 思路分析 这道题很明显就是利用桶排序的思路 受到课程内容的影响,我一开始是想着建立一个链表数组,数组内每个元素下方都存放链表,最后再遍历统计输出。 但是&…

【华为OD机试-C卷D卷-200分】反射计数(C++/Java/Python)

【华为OD机试】-(A卷+B卷+C卷+D卷)-2024真题合集目录 【华为OD机试】-(C卷+D卷)-2024最新真题目录 题目描述 给定一个包含 0 和 1 的二维矩阵。 给定一个初始位置和速度,一个物体从给定的初始位置出发,在给定的速度下进行移动,遇到矩阵的边缘则发生镜面发射。 无论物体…

算法训练营第四十二天 | LeetCode 42 不同路径、LeetCode 63 不同路径 II

LeetCode 62 不同路径 这题首先确定下dp数组下标和含义。主要有两种方式,一种是按照位置在数组中下标直接确定,另一种是依据递推时边上的位置需要再往上和往左递推时会出界,将位置设为序号而非下标。这一题第二种方式会比较好一些。递推逻辑也…

Android和flutter交互,maven库的形式导入aar包

记录遇到的问题,在网上找了很多资料,都是太泛泛了,使用后,还不能生效,缺少详细的说明,或者关键代码缺失,我遇到的问题用红色的标注了 导入aar包有两种模式 1.比较繁琐的,手动将aar…

The Sandbox DAO:投票决定元宇宙的未来!

赋予用户治理权,打造由社群运营的开放式数码国度 随着The Sandbox DAO的启动,我们邀请全球社群——这个新数字国度的公民们——提出建议并参与治理,共同塑造开放元宇宙的未来。 介绍 在The Sandbox,我们正在建立一个开放的元宇宙…

聚酯输送带的原材料

揭秘聚酯输送带原材料:高效耐用背后的秘密武器 在现代化工业生产中,聚酯输送带以其出色的耐用性和稳定性,成为众多行业不可或缺的传输工具。然而,你是否好奇,究竟是什么原材料赋予了聚酯输送带如此卓越的性能&#xf…

opencv c++编程基础

1、图片的本质 图像在 OpenCV 中的本质 在 OpenCV 中,图像被表示为一个多维数组,其中每个元素对应于图像中的单个像素。图像的维度取决于其通道数和像素数。 **通道数:**图像可以有多个通道,每个通道存储图像的不同信息。例如&…

一维扫描线,有多少对相交线段

D - Intersecting Intervals 目录 正向: 反向: 正向: 从左往右扫描,记录当前边数。 来了新边,它此刻与当前边数相交,加到总数中。边结束,当前边数中减去即可。 const int maxn 5e55; int …

Uniapp横竖屏切换让某一个页面只能横屏或者竖屏

先看官方属性 plus.screen.lockOrientation(default); // 默认横竖屏切换 plus.screen.lockOrientation(portrait-primary);// 竖屏展示 plus.screen.lockOrientation(landscape-primary); // 强制横屏简单需求:允许横竖屏切换 在 page.json增加以下代码 "gl…