指令系统 寻址方式与指令编码

通用数据传送指令MOV

格式:MOV DEST, SRC

功能:把SRC中的数据传输到DEST中

DEST与SRC不能同为存储器寻址(考虑到运算速度)

目的操作数与源操作数的关系,箭头指向的方向为目的操作数(dest)的可用类型,立即数只能用作源操作数(src),存储器,通用寄存器(BX,AX,DX,CX,SI,DI,BP,SP),段寄存器(DS,SS,ES,CS),在指令中的位置可以相互转换;

注意:可以将存储单元(存储器)和通用寄存器的数据送到段寄存器,但不允许向代码段寄存器(CS)传送,因为这样会改变CS的值引起混乱

在日常学习的过程中,只需要将上面这张图记住(知识晶体)就可以很好地判断指令的格式和操作数存储类型是否正确

如:MOV SEG, IMM

其中SEG代表段寄存器,IMM代表立即数,此条指令的含义是将立即数传输到段寄存器中,由上图可知,立即数只能传输到存储器和通用寄存器,而无法直接抵达段寄存器

还有一种错误类型和数据进制有关(低八位和高八位)

MOV AL, 050H

此条指令错误的原因是,AL代表的是低八位的寄存器,是字节,而050H显然是字,所以是非法指令

关于字与字节的介绍:(72条消息) 十进制转二进制和十六进制 条件码标志和乘法指令_Elvin煜文的博客-CSDN博客_ffh表示成十进制数是https://blog.csdn.net/m0_51787573/article/details/123655091?spm=1001.2014.3001.5502

 由于指定的寄存器有明确的字或字节类型,所以对应的立即数也必须是字或字节

在涉及存储单元时,指令中的立即数可以理解为是字,也可以理解为是字节,需要使用

WORD PTR[寄存器]   字

BYTE PTR[寄存器]    字节

进行指定

交换指令XCHG

格式:XCHG  REG,  REG/MEM 

功能:将存储在其中的数据交换, MEM代表存储器,REG代表寄存器

用交换指令实现寄存器和存储器之间的数据交换

XCHG  AX,   [2000H]             也可以表示为  XCHG  [2000H],   AX

XCHG  AL,   [2000H]                                     XCHG  [2000H],   AL

[2000H] 有方括号,代表传输该存储位置上的内容,可理解为存储器

换码指令XLAT(查表指令)

XLAT   LABEL   或   XLAT

使用方法:将BX指定的缓冲区中,由AL指定的位移量处的值取出,送到AL

在做地址计算时,首地址会存储一个数据,后面从1开始逐个加和

十六进制异或前,把它转为二进制数进行计算

能够影响标志寄存器内容的指令是(    )

  •   A

    传送类指令                 #MOV  XCHG XLAT   该类指令除标志寄存器传送指令外,均不影响标志位

  •   B

    I/O类指令                    #IN/OUT 输入输出指令 

  •   C

    减法类指令                  #影响CF , AF, ZF, PF, SF, OF

  •   D

    转移类指令                  #该类指令不影响标志位

下列哪一种计算不属于RISC技术(     )

  •   A

    指令条数少

  •   B

    寻址方式少

  •   C

    指令格式简单

  •   D

    采用微程序控制器

RISC技术:1.指令条数较少;2.指令格式规整;3.面向寄存器操作;4采用组合逻辑控制器;5.适合流水线技术;6支持编译器优化;7.可在CPU中集中更多的功能

RISC的最大特点:指令系统简单,指令执行速度快,设计实现容易;

CISC技术:1.指令系统庞大;2.指令结构复杂;3.指令的执行时间不均衡;4.CPU结构复杂;5.采用微程序控制

减法指令

减法指令包含: SUB,SBB(无符号数双字长减法运算),DEC(对操作数减1),NEG(求补运算),CMP(compare 比较指令)

格式:当目标操作数是寄存器时,源操作数可以是寄存器,存储器和立即数;

           当目标操作数是存储器时,源操作数只能是寄存器和立即数

符合通用数据传送指令MOV中所绘制的脑图关系

乘法指令

无符号乘法指令MUL,有符号乘法指令IMUL

乘法指令被乘数,默认存放在AL或AX中,乘数可以是寄存器,存储器

对CF和OF没有影响,可以判断相乘的结果中高一半是否为有效值,若没有有效值,CF=OF=0

对于IMUL若CF=OF=0,则高一半是低一半的符号扩展位

乘法指令对其他标志位的影响没有定义,即不可预测;并不是没有影响,没有影响是指不改变原来的状态

计算前先把十六进制转为二进制

设BL=05H,要使BL=0AH,应该执行的指令是(      )

  •   A

    NOT BL        #NOT取反码   FAH

  •   B

    AND  BL,BL     #逻辑与   相与的两位都是1,结果才是1,否则与的结果为0    05H

  •   C

    XOR BL,0FH     #异或,相同为0,不同为1      0AH

  •   D

    OR  BL,0FH    #逻辑或,相或的两位,有1即为1      0FH

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值