汇编语言-指令系统

【计算机组成原理】计算机的指令系统 指令编码是将汇编指令转化为二进制形式,而指令解码是将计算机存储器中读出的二进制指令解释为对应的操作,从而进行相应的计算或数据传输等操作。在计算机中,指令的操作码(opcode)是指为了完成某个操作而被执行的机器语言代码,而操作数(operand)则是指指令中指定的操作对象。在指令编码中,不同的操作码对应不同的二进制数,而不同的寻址方式对应的二进制数也不同。需要注意的是,不同的指令集和处理器可能支持的寻址方式不同,因此在编写程序时需要根据具体的处理器架构和指令集来选择合适的寻址方式。 阅读详情

前言

不知不觉自己已经快30岁了,自己经历里两次考研的失败让我自己逐渐认识到了人生自己的选择很重要,有的时候选择错了在拼命也没有用,还有就是人要珍惜时间。

指令系统

我们首先需要知道的是什么事指令,已经指令能干啥。

指令
就是能够被计算机识别,同时完成指定的操作的一串代码,完成的操作例如通过计算机进行数据的运算呀等等。

指令的分类

  • 按指令用途分类分为6大类:传送指令,算数运算指令,位操作指令,串操作指令,程序转移指令,处理器控制指令。
  • 按指令的格式分为3种:双操作数指令,单操作数指令,无操作数指令。

传送类指令
传送类指令的作用是将数据信息或地址信息传送到一个寄存器或存储单元中,分为四种情况

对于段寄存器是在寻址的时候的段基址肯定是不能被轻易改变的,所有一般的指令都是不能改变段寄存器的数值的。

  • 通用数据传送指令
    指令格式:MOV DEST ,SRC;
    指令作用:将原操作数指定的内容传送到目的操作数,指令执行结束之后目的操作数和原操作数具有的内容相同。
    指令对标志寄存器的影响:无
    指令使用要求:MOV指令可以是字节数据传送也可以是字数据传送,但是源操作数和目标操作数长度必须一致。
    指令使用分类
    (1)将立即数传送到通用寄存器或者是存储单元(立即数只能做源操作数,立即数不能传送给段寄存器)。
    (2)传递寄存器之间的数据(段寄存器CS只能作为源操作数)。
    (3)寄存器和存储单元之间的传送。

  • 数据交换指令
    指令格式:XCHG DEST,SRC;
    指令作用:源操作数和目的操作数两者内容相互交换。
    指令对标志寄存器的影响:无
    指令的使用要求:数据交换可以在寄存器之间或寄存器和存储单元之间进行,不能在存储单元之间交换数据,寄存器只能使用通用寄存器。

  • 标志传送指令
    指令作用:对标志寄存器进行存取的指令有四条,他们都是无操作数指令,即指令隐含指定标志寄存器,AH寄存器或堆栈为操作数。
    (1)取标志寄存器指令:
    指令格式:LAHF
    指令作用:将标志寄存器的低8位送入到AH寄存器。
    (2)存标志寄存器指令
    指令个数:SAHF
    指令作用:将寄存器AH种的7,6,4,2,0位分别送入到标志寄存器的对应的低8位,高8位不受影响。
    (3)标志进栈指令
    指令格式:PUSHF
    指令作用:先将堆栈指针SP减2,使其指向堆栈顶部的空字节单元,然后将16位的标志寄存器的内容送到SP指向的字节单元。
    (4)标志出栈指令
    指令格式:POPF
    指令作用:将由SP指向的堆栈的顶部的一个字节单元的内容送入标志寄存器,然后SP的内容加2.

地址传送指令
地址传送指令有3条,他们的作用是将存储单元的地址送到寄存器。
(1)装入有效地址
指令格式:LEA DEST,SRC;
指令要求:源操作数SRC必须是一个字或者是字节存储器操作数(地址),DEST必须是一个16位通用寄存器。
指令作用:将SRC存储单元地址中的偏移量,即有效地址EA传送到一个16位的通用寄存器中。
指令对标志寄存器的影响:无
(2)装入地址指针指令
指令格式: LDS DEST,SRC 或 LES DEST,SRC
指令作用:把SRC存储单元开是的4个字节单元的内容送入DEST通用寄存器和段寄存器DS(LDS指令)或ES(LES指令),其中低地址为偏移量送入通用寄存器,高字节位段基址送入DS或ES。

加法指令
指令格式:ADD DEST,SRC(ADC代进位的加法指令)
指令功能:目的操作数和源操作数相加,其结果存储在目的操作数中,而源操作数保持不变
指令对标志寄存器的影响:有
指令要求:DEST只能是通用寄存器或存储器操作数,不能是立即数,SRC可以是寄存器,存储器或立即数操作数,DEST和SRC不能都是存储器操作数。

加一指令
指令格式:INC DEST
指令的作用:目的操作数可以是任意的8位,16位通用寄存器或存储器操作数,目的操作数被视为代符号的二进制数,根据执行的结果设置 PF,AF,ZF,SF和OF标志,但是不影响CF。

减法指令
指令格式: SUB DEST,SRC (SBB代进位的减法指令)
指令功能:目的操作数的内容减去原操作数的内容,结果送入目的操作数,源操作数中的内容不变。
指令要求:目的操作数DEST和源操作数SRC可以是8为或16位的通用寄存器,存储器操作数,但是两者不能同时是存储器操作数,立即数只能是源操作数。

减一指令
指令格式:DEC DEST
指令作用:该指令为单操作数指令,将目的操作数的内容减一后,送回到目的操作数
指令要求:DEST可以是8位或16位的通用寄存器或存储器操作数,该指令是将DEST看作是带符号的二进制数。
指令对标志寄存器的影响:同加一

求负数指令
指令格式:NEG DEST
指令功能:用零减去目的操作数的内容,并送回目的操作数
指令要求:DEST可以是任意的8位或16位的通用寄存器或存储器,被视为带符号的操作数,NEG指令也叫取补指令。
指令对标志寄存器的影响:对PF,AF,ZF,SF,CF和OF都有影响,CF只有到操作数是0 的时候CF被置为0,其余都是1

位操作指令

  • 逻辑运算符:按位的逻辑元算,包括与,或,异或,非
    逻辑元素指令对标志位的影响:NOT指令无影响,其余的三条根据结果的不同对SF,ZF,PF有影响。

测试指令
指令使用格式。 TEST DEST,SRC
指令作用:该指令的功能和AND指令类似,实现的是源操作数和目标操作数进行按位与的操作,对标志位的影响和AND相同,但是运算的结果不送入目的操作数。

算术位移指令
指令格式:SAL DEST,COUNT/ SAR DEST,COUNT
指令作用:算术左移,和算术右移
指令解释:算术左移最高位放到CF中 最低位补0,算术右移最低位移动到CF最高位不动
指令要求:DEST为操作对象,他可以是字也可以是字节,可以是通用寄存器或存储器操作数,移动的次数是在寄存器CL中的。

逻辑移位指令
指令格式:SHL DEST,COUNT/ SHR DEST,COUNT
指令作用:算术左移,和算术右移
指令解释:算术左移最高位放到CF中 最低位补0,算术右移最低位移动到CF最高位补0
指令要求:DEST为操作对象,他可以是字也可以是字节,可以是通用寄存器或存储器操作数,移动的次数是在寄存器CL中的。

计算机系统概论——第5章 LC-3结构 计算机系统概论第5章的一些知识总结 阅读详情

相关推荐

汇编语言:指令系统与控制流

(一)按功能分类1.数据传送指令• MOV:用于寄存器之间、寄存器与内存之间、内存与内存之间的数据移动。• PUSH/POP:用于将数据压入堆栈或从堆栈弹出。2.算术运算指令• ADD/SUB:加法和减法运算。• MUL/DIV:乘法和除法运算。3.逻辑运算指令• AND/OR/XOR:逻辑与、或、异或运算。• NOT:逻辑非运算。4.控制转移指令• JMP:无条件跳转。• CALL/RET:子程序调用和返回。

2401_86161528的博客 905

DJ7-5 指令流程与微命令(第二节课)

模型机指令流程与微命令

狂放不羁霸的博客 2205

全面掌握汇编语言指令系统

本文还有配套的精品资源,点击获取 简介:本书《汇编语言指令系统大全》详细介绍了汇编语言的基础知识与应用,包括数据处理、转移、输入输出、存储访问、控制流等指令的分类,以及伪指令的定义和作用。通过学习汇编语言指令系统,读者能够直接与计算机硬件交互,优化性能敏感的代码,并进行低级调试。 1. 汇编语言基础概念 1.1 汇编语言的历史与发展 汇编语言是最早的编...

weixin_42452483的博客 1027

汇编语言:第三、四、五讲

在内存中存储时,由于内存单元是字节单元(一个单元存放一个字节),则一个字要用两个地址连续的内存单元来存放,可以在具体操作的时候,用ds存放数据段的段地址,在根据需要,用相关指令访问数据段中的具体单元。1.SP=SP-2,SS:SP指向当前栈顶前面的单元,以当前栈顶前面的单元位新的栈顶。2.SP=SP+2,SS:SP指向当前栈顶下面的单元,以当前栈顶下面的单元为新的栈顶。高地址内存单元中存放字型数据的高位字节,低地址内存单元中存放字型数据的地位字节。栈顶的段地址存放在SS中,偏移地址存放在SP中。

d3535的博客 1663

Rstudio-server无法登陆?几种解决方法 卡死 崩溃了 卡住

Q6:Rstudio-server无法登陆?几种解决方法1 检查登陆方式是否正确 (IP/域名 端口是否弄错了)2 查看自己用户名和密码是否输入错误(大部分无法登陆的原因都是第1点和第2点)3清空浏览器cookie缓存,或者换个浏览器登陆,推荐谷歌浏览器4 如果是出现下面截图界面,试试点击Terminate R 或 Safe Mode(如果试了还不行,继续尝试后面方法5~8)5 ssh登录,然后查看自己的磁盘存储空间是否用尽(方法见Q9),如果是,先清理自己的磁盘空间。

生信小博士的博客 1万+

手把手教你用CEFSharp打造防关联指纹浏览器(附完整代码)

本文详细介绍了如何基于CEFSharp框架,从零开始构建一个企业级的防关联指纹浏览器。通过剖析核心架构、多进程隔离实现、动态指纹混淆(如Canvas、WebGL)的实战代码,以及代理集成与性能优化,为跨境电商、广告投放等场景提供了一套可控、安全的开源解决方案。

fern8的博客 962

8086指令系统 操作数地址,双操作数,单操作数,无操作数指令。一,传送类指令;二,二、算数运算类指令

双操作数指令:OPR DEST,SRC 单操作数指令:OPR DEST 无操作数指令:OPR按指令功能划分为六大类: 1传送类指令 2算术运算类指令 3位操作类指令 4串操作类指令 5程序转移类指令 6处理器控制类指令一,传送类指令 1,数据传送指令2交换指令3标志位传送指令4地址传送指令 1数据传送类指令 格式: MOV DEST (R/M),SRC(R/M/立

用心做事,用爱生活 1万+

sram设计流程+memory compiler整理

→。

qq_50761108的博客 1万+

汇编语言常用指令系统

tips:之后经常会提到的概念:标志位。

E810825的博客 1783

MTK pwm beeper配置记录

如果正常,系统启动后会在/dev/input下生成 一个event节点,使用方法参考标准linux使用。dts相关修改如下,全都在里面,注意一下位置。对应的配置文件中增加如下定义。

hclydao的专栏 727

从谱峰搜索到多项式求根:Root-MUSIC算法原理与MATLAB实践

本文深入解析Root-MUSIC算法在阵列信号处理中的原理与应用,通过多项式求根替代传统MUSIC算法的谱峰搜索,显著提升计算效率和精度。文章详细介绍了算法核心思想、MATLAB实现步骤及工程优化技巧,帮助读者掌握这一高效的DOA估计方法。

weixin_30832143的博客 80

汇编语言 8086/8088指令系统

汇编语言 8086/8088指令系统 1.指令基本组成 1.1 指令的一般格式 一条指令一般由两部分组成。第一部分是操作码(指令码),一般用英文缩写表示,用来指出指令要做什么操作,所以是指令中必须给出的内容。第二部分便是操作数,它可以根据不同的情况显式给出或者隐式存在。第二部分中,前一个为目标操作数,后者为源操作数。 在微处理器指令系统中,一条指令的操作数可以没有或有一个,但最多只

long小白的博客 1万+

BUCK 电路详解

参考内容: 手撕Buck!Buck公式推导过程 电力电子的基础应用 《精通开关电源设计(第二版)》 Buck电源芯片输出有问题?检查这几样 原来PWM这么简单! BUCK 电路构建 根据高中所学习的物理知识可以很容易的想到,使用一个滑动变阻器即可实现降压和稳压的效果。当负载波动时,通过改变滑动变阻器的阻值,可以调节负载所获得的电压。但是使用滑动变阻器的劣势也很明显,大量的耗能会导致器件温度快速升高。 上面所提到的电路主要缺点在于导通器件(变阻器或三极管)本身存在耗能,那么有没有不会耗能的导通器件呢?

Guanngxu的博客 3990

指令系统与汇编语言

单片机的学习通常从基础硬件知识开始,逐步深入到指令系统、编程技巧等高级内容。这种学习路径反映了掌握复杂技术时的自然演进:先理解构建块,再了解如何将这些块组合起来创建功能更强大的系统。本文将探讨单片机学习中的关键概念,并通过代码示例加深理解。

jikuaidi6yuan的博客 1938

hcaptcha无感验证码逆向实战:从接口分析到环境补全

本文详细解析了hcaptcha无感验证码的逆向实战过程。通过分析核心接口与加密逻辑,重点介绍了采用环境补全策略来模拟真实浏览器环境,从而绕过验证码检测。文章提供了从接口抓包、剖析hsw.js加密核心到使用Node.js搭建模拟环境的完整步骤,为自动化操作提供了一种稳健的解决方案。

weixin_29324401的博客 1152

Materials Studio实战技巧(八)——利用片段库高效构建有机金属配合物

本文详细介绍了在Materials Studio中利用Fragment Browser(片段浏览器)高效构建有机金属配合物的实战技巧。通过调用预置的Metal Templates和Ligands库,用户可以快速搭建如茂金属催化剂等复杂分子骨架,并利用对称性操作精确控制Meso与Rac构型。文章还涵盖了自定义片段库的创建与使用,能显著提升建模效率,适用于计算化学与材料模拟领域的研究者。

wine的专栏 936

汇编语言笔记——8086&&寻址方式与指令系统

8086 1.寄存器 cpu在访问存储器时,必须指明: 段寄存器:所访问的存储单元属于哪个段 偏移量:相应存储单元与段起始地址(段基址)的距离 notes : 在程序设计中,可以把一个程序划分为任意个存储段。但只要在程序运行时,最多只有四个段,它们分别由CS,DS,ES和SS指定因为我们只有四个段寄存器呀ヾ(๑╹◡╹)ノ" IP(指令指针)的内容不能直接被访问,不能直接用指令去读IP的值,...

Moliay的博客 1113

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【汇编语言】外中断(三)—— 探秘汇编外中断:从安装新INT 9例程到指令系统总结

文章围绕汇编语言,以安装新 int 9 中断例程为例,阐述相关知识及 8086CPU 指令系统。

2301_80191662的博客 1429

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

《汇编语言程序设计》第2章 寻址方式和指令系统

用于根据BX寄存器指向的表格和AL寄存器的值,在表格中查找对应的字节数据,并将结果存回AL寄存器。依据标志寄存器中的标志位状态来决定是否进行转移,这类指令通常紧跟在比较指令(如CMP)之后,实现根据比较结果进行不同的处理。将AL或AX寄存器中的值与字符串中的一个字节或字进行比较,并根据比较结果设置标志位,同时自动调整DI。在这种寻址方式下,先从指定的寄存器中获取偏移地址,再结合段寄存器的值计算出物理地址,从而找到操作数。操作数的有效地址是一个基址寄存器的值加上一个变址寄存器的值,再加上指令中给定的位移量。

qq_40844444的博客 1126

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

每日一课(20/75)汇编语言指令系统简介

指令系统的意义 指令系统确定了CPU所能完成的功能,是用汇编语言进行程序设计的最基本部分。如果不熟悉汇编指令的功能及其有关规定,那肯定不能灵活使用汇编语言。 汇编语言的指令格式 指令助记符 [操作数1 [,操作数2]][;注释] 指令助记符决定了指令的功能,对应一条二进制编码的机器指令。 指令的操作数个数由该指令确定,可以没有操作数,也可以有一个或多个操作数,大多数指令要显示...

weixin_30679823的博客 129

mcs51C语言指令系统,MCS-51单片机指令系统和汇编语言程序实例

MCS-51单片机指令系统和汇编语言程序实例介绍MCS-51的指令系统和汇编语言编程,了解处理器的软件资源3.1 MCS-51单片机指令系统概述???? 3.2 寻址方式???? 3.3 数据传送类指令???? 3.4 算术运算类指令???? 3.5 逻辑运算及移位指令???? 3.6 控制转移类指令???? 3.7 子程序调用与返回指令???? 3.8 位操作类指令???? 3.9 汇编程序格式与伪指令???? 3.10 汇编程序设计示例3.1 M...

weixin_39845306的博客 369

汇编语言之8086/8088指令系统

Typist : Akame Qixisi / Excel Bloonow 在我学习汇编语言(基于8086)的过程中,遇到过一些想要某些操作却不知道指令的情况,所以在这里统一记录一下。如有错误或不同观点欢迎批评指出。 8086/8088指令系统 8086/8088指令系统的指令分为7类,即数据传送、算术运算、逻辑操作、程序控制、数据串操作、处理器控制、输入输出。在学习指令系统时,应该从4个方面掌握这个指令,如下: 掌握指令的功能:该指令能够实现何种操作,通常指令助记符就是指令功能的英文单词或器缩写形式。

Excel Bloonow 3650

汇编语言——指令系统

一种计算机所能执行的各种类型的指令的集合称为该计算机的指令系统。 Intel8086/8088CPU指令系统的指令可以分为六大类:   1.传送类指令   2.算术运算类指令   3.位操作类指令   5.程序转移类指令   6.处理器控制类指令 从指令的格式划分,一般可以分为三种:   1.双操作数指令:OPR DEST SRC   2.单操作数指令:OPR DES...

ance1038的博客 1120

伪指令endp告诉汇编程序_第2章 指令系统及汇编语言程序设计 题库和答案

第2章指令系统及汇编语言程序设计________________________________________一.选择题1.指令ADDCX,55H的源操作数的寻址方式是()。(A)寄存器寻址(B)直接寻址(C)寄存器间接寻址(D)寄存器相对寻址2.设(SS)=3300H,(SP)=1140H,在堆栈中压入5个字数据后,又弹出两个字数据,则(SP)=()。(A)113AH(B)114A...

weixin_42310347的博客 559

dx 汇编dec_汇编语言——80x86指令系统(一)

80x86指令系统指令格式1.指令的书写格式标号:指令助记符操作数; 注释2.操作数的3种形式:立即操作数:指令的操作数是立即数,并直接出现在指令中。寄存器操作数:操作数是寄存器的值,指令中使用寄存器名。内存操作数:操作数是某个内存单元的值,指令中给出有效地址EA,段地址在某个段寄存器中。8086指令的操作数形式1.立即数: 8位或16位立即数。2.寄存器操作数:8位/16位通用寄存器和段...

weixin_33318720的博客 962

汇编语言--微机CPU的指令系统(五)(数据传送指令)

五、微机CPU的指令系统 1、汇编语言指令格式 汇编语言的指令格式如下: 指令助忆符 [操作数1 [, 操作数2 [, 操作数3]]] [;注释] 指令助忆符体现该指令的功能,它对应一条二进制编码的机器指令。指令的操作数个数由该指令的确定,可以没有操作数,也可以有一个、二个或三个操作数。绝大多数指令的操作数要显式的写出来,但也有指令的操作数是隐含的,不需要在指令中写出。 当指令...

941
上一篇: 汇编语言-寻址方式
xh_4215
博客等级 码龄10年 7粉丝 88原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值