精华内容
下载资源
问答
  • 寄存器

    2020-02-23 21:24:19
    通用寄存器 AX,BX,CX,DX,是四种通用寄存器,用于保存数据,是数据寄存器 四种寄存器容量都为两个字节,是十六位寄存器,表示范围0-65535,216 上述四种寄存器都可以分割成对应的2个8位...DX = DH + DL 上述...

    通用寄存器

    1. AX,BX,CX,DX,是四种通用寄存器,用于保存数据,是数据寄存器
    2. 四种寄存器容量都为两个字节,是十六位寄存器,表示范围0-65535,216
    3. 上述四种寄存器都可以分割成对应的2个8位寄存器,
      • AX = AH + AL,高八位成为AH寄存器,H是high的意思,低八位是AL寄存器,L是low的意思
      • BX = BH + BL
      • CX = CH + CL
      • DX = DH + DL
        上述的八位寄存器,表示范围0-255
    4. 将16位寄存器分为两种寄存器:
      • 为了兼容性,低位寄存器是为了保证原先的八位的就程序也能够读取,原先的CPU仅仅有八位寄存器去书写程序
      • 8X86CPU一共有16条数据线,一次可以处理8位数据和16位数据,两种数据
    5. 8位数据,字节型数据 byte = 8 bits;16位数据,字型数据,2 byte = 16bits,一个字型数据有两个字节型数据构成,分别是高位字节和低位字节,高位字节存在AH,BH,CH,DH,低位字节存放在AL,BL,CL,DL
    寄存位实验
    寄存器实验1,移动数据
    1. 在用寄存器移动数据时,数据的位数要和寄存器的容量相适应,AX寄存器是16位寄存器,对应的应该是四个16位进制的数字,不能够将AL八位寄存器的数据转移到十六位寄存器中去,同样的,也不可以将AX16位寄存器中的数据直接传给AL8位寄存器中去在这里插入图片描述
    寄存器实验二,加法

    八位寄存器,进行八位运算,并不会将多出来的位进到高位寄存器中去,仅仅只会自动清零,然后再接着运算,在这里插入图片描述

    总结:
    1. 寄存器是相互独立的,并不会出现进位的,如果八位计算超出了八位,那就仅仅保存最后的八位,多余的消失。
    2. 寄存器的加法是与位数相关的,八位寄存器和八位寄存器相加,十六位寄存器和十六位寄存器相加。八位相加出现多于八位,仅保留八位。
    3. 基本操作 a——输入基本的指令
      * r——展示寄存器的值

    地址寄存器

    1. 基本操作 摁“r”,然后在摁“d”,显示出对应的寄存器
      在这里插入图片描述
    2. 073F:0100》》段地址:偏移地址
      • 段地址:DS,ES,CS,SS
      • 偏移地址:SP,BP,SI,DI,IP,BX
    3. 寄存器的位数是16位,但是CPU是有20根地址线,寄存器的表达局限性,限制了CPU的寻址能力,为了让16位能够表达二十位,就出现了地址加法器,地址的计算方式,将十六位表达,变成二十位表达。
      • 地址加法器:段地址 X 16 (十进制的16,10H在十六进制之下) + 偏移地址 = 物理地址
      • 段地址 X 16 = 基础地址(就是往后移了一位,扩大了一位,使之能够满足二十位的需求),基础地址 + 偏移地址 = 物理地址
        在这里插入图片描述
    4. 实际操作:一个最终的物理地址只要满足公式,都可以找到同样的物理地址,段地址的范围是0 - ffff,只要满足公式,那么最终到达的物理地址都是相同的。
      在这里插入图片描述
    练习题

    有一个数据放在内存为20000H的单元格,现在给段地址位SA,若想将偏移地址寻找到此单元格,则SA应该满足的条件最小:10H,最大1001H,这是一个问题,十六位的范围:0 - FFFF,始终少了一个一,而整除的时候会自动舍弃末位的1,所以不可取。
    在这里插入图片描述

    CPU如何区分数据和指令

    1. u指令:将某个内存地址开始的字节,全部当作指令
    2. d指令:将某个内存地址开始的字节,全部当作数据
      • 两次相同的地址,但是是完全不同的指令,显示的结果也不同
        在这里插入图片描述
    3. r + 空格 + ds,修改对应的段地址寄存器的值;r 显示CPU中所有寄存器的值。:在这里插入图片描述
    4. 虽说内存中的数据和指令是一致的,但是CPU还是能够区分出来,CPU是将CS:IP地址所指向的内容全部当作指令来执行。
      在这里插入图片描述
      在这里插入图片描述
      在8086CPU,在任意时刻,CPU将CS:IP所指向的内容,全部当作指令去执行
    实验——CPU区分指令和数据

    在这里插入图片描述
    将我输入的对应的二进制代码,变成对应的命令去执行,修改CS:IP的地址,让其去执行对应的输入的代码,用e指令修改2000:0的地址,使其为下列相关的地址,去执行。
    在这里插入图片描述

    执行之后,指令行左侧地址已经改变,读取地址,就按照地址里的数据进行执行,问题在于,平常读取数据难道会切换吗?
    在这里插入图片描述
    为什么每一次u都是不一样的,难道再写入数据吗?

    指令执行的过程

    1. CPU从CS:IP所指向的内存单元中读取指令,存放到指令缓存器中去
    2. IP = IP + 所读指令的长度,从而指向下一条指令
    3. 执行指令缓存器中的内容,回到步骤一

    IP寄存器指令的长度关系
    在这里插入图片描述
    在2000:0中输入如下的数字在这里插入图片描述
    修改控制寄存器的命令,然后进行运算。第一次运算,是以b8204e作为第一个控制指令开始计算的,mov占了三个字节,下一次执行,ip的值就会加3。
    在这里插入图片描述
    在这里插入图片描述
    分别对应的是:
    CS:IP 当前控制符的对应的字符串 控制指令 操作的数据
    问题是:操作的数据从哪里来?
    第一次执行
    在这里插入图片描述
    第二次执行
    在这里插入图片描述

    下述显示的是073F:0100对应的数据形式

    在这里插入图片描述

    下述显示的是073F:0100对应的汇编指令的形式

    在这里插入图片描述

    下述时开始运行

    未运行时在这里插入图片描述
    在这里插入图片描述

    JMP指令

    1. 转移指令,可以修改CS和IP这两个寄存器,决定了CPU从哪里读取数据
    展开全文
  • 汇编语言:寄存器相关概念初理解(通用寄存器、段寄存器、专用寄存器) 1.寄存器分类 一图抵千言: 2.详细介绍及注意事项 (1)AX BX CX DX被称为通用寄存器(可被分割为2个8位寄存器),存放数据...DX = DH+ DL (4)

    汇编语言:寄存器相关概念初理解(通用寄存器、段寄存器、专用寄存器)

    1.寄存器分类
    一图抵千言:
    寄存器分类
    2.详细介绍及注意事项
    (1)AX BX CX DX被称为通用寄存器(可被分割为2个8位寄存器),存放数据的,数据寄存器(16位)寄存器。
    (2)2byte = 16 bit 0000 0000 0000 0000~1111 1111 1111 1111 0~FFFFH 0~65535 65536
    (3)AX = AH + AL
    BX = BH + BL
    CX = CH +CL
    DX = DH+ DL
    (4)内存的最小单元为字节 8bit,CPU从内存中读取一个 字节 8bit 字符型数据(8位数据)到8位寄存器中,16根数据线的宽度决定了 CPU 一次性能够读取多长的数据,8086 CPU 一次性可以处理两种尺寸的数据,8位寄存器进行8位运算保存8位数据,寄存器是互相独立的,AL就是AL,AH就是AH ,不会互相影响。

    **下面重点介绍标志寄存器: **
    1)用途:标志寄存器F(FLAGS),又称程序状态字寄存器PSW,是用以记录或存放状态标志和控制标志信息的。
    2)状态标志位——用以记录当前运算结果的状态信息。
    3)控制标志位——用以存放控制CPU工作方式的标志信息。
    4)进位标志CF(相对于无符号数来说)(Carry Flag)
    当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF = 1;否则CF = 0。
    例如:3AH + 7CH=B6H,没有进位:CF = 0
    AAH + 7CH=(1)26H,有进位:CF = 1
    5)溢出标志OF(相对于有符号数来说)(Overflow Flag)
    若算术运算的结果有溢出,则OF=1;否则 OF=0。
    只是对有符号数而言。对无符号数而言,OF=1并不意味着结果出错。
    例如:80H - 01H=7FH = 127, OF=1
    对于无符号数而言,128 - 1 = 127,正确
    对于有符号数而言,-128 - 1 = 127,错误

    比较:
    (1)进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确;
    (2)溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确。

    牛刀小试:
    执行下列程序后,请思考为什么(AX)=3, OF=0, CF=0:
    MOV AX, 1
    MOV BX, 2
    ADD AX, BX

    彩蛋!!!
    位、字、字节概念补充:
    (1)位,是最基本的概念,在计算机中,由于只有逻辑0和逻辑1的存在,因此很多东西、动作、数字都要表示为一串二进制的字码例如: 1001 0000 1101等等。其中每一个逻辑0或者1便是一个位。例如这个例子里的1000 1110共有八个位,它的英文名字叫(bit),是计算机中最基本的单位。
    (2)字节 Byte,是由八个位组成的一个单元,也就是8个bit组成1个Byte。字节有什么用呢? 在计算机科学中,用于表示ASCII字符,便是运用字节来记录表示字母和一些符号~例如字符A便用 “0100 0001”来表示。
    (3)字节以上,便是字:16个位为一个字,它代表计算机处理指令或数据的二进制数位数,是计算机进行数据存储和数据处理的运算的单位。通常称16位是一个字,而32位呢,则是一个双字,64位是两个双字。

    本文部分内容来源于互联网,如有侵权请及时联系我删除!!如有疑问,可加QQ:3451707815与作者探讨!

    展开全文
  • 寄存器内容

    2020-12-20 16:01:04
    通用寄存器: 8086的16为通用寄存器是...AL BL CL DL AX——累加器,用于算术、逻辑运算以及外设传送信息等; BX——基址寄存器,常用做存放储存器的地址; CX——计数器,作为循环和串操作等指令中的隐含计数器

    通用寄存器:

    8086的16为通用寄存器是:
    AX BX CX DX
    SI DI BP SP

    其中4个数据寄存器还可以分为高8位和低8位两个独立的寄存器

    • 8086的8位通用寄存器是:

    AH BH CH DH
    AL BL CL DL

    • AX——累加器,用于算术、逻辑运算以及外设传送信息等;

    • BX——基址寄存器,常用做存放储存器的地址;

    • CX——计数器,作为循环和串操作等指令中的隐含计数器;

    • DX——数据寄存器,常用来存放双字长数据的高16位,或存放外设端口地址。

    • SI是原变址寄存器

    • DI是目的变址寄存器

    • SP为堆栈指针寄存器,指示栈顶的偏移地址(SP不能用于其它目的,具有专用目的)

    • BP为基址指针寄存器,表示数据在堆栈段的基地址(基地址其实就是每个段的起始地址,又称段地址

    • IP是指令指针寄存器(专用寄存器),用来指示代码段中的偏移地址。与CS联用来确定下一条指令的物理地址

    展开全文
  • 2 寄存器

    2018-10-23 21:36:00
    通用寄存器 8086CPU的所有寄存器都是16位的,可以存放两个字节。 AX BX CX DX这次个寄存器通常...DX 分为 DL DH 字在寄存器中的存储 字节:记为byte,8bit,可以存在一个8位寄存器中 字:记为word,...
    • 通用寄存器

         

      8086CPU的所有寄存器都是16位的,可以存放两个字节。

      AX BX CX DX这次个寄存器通常用来存放一般性的数据,被称为通用寄存器。

      AX 分为 AL AH

      BX 分为 BL BH

      CX 分为 CL CH

      DX 分为 DL DH

         

    • 字在寄存器中的存储

         

      字节:记为byte,8bit,可以存在一个8位寄存器中

      字:记为word,一个字由两个bit构成

         

    • 几条汇编指令

         

      AL 可以作为独立8位寄存器使用,和AH没有关系,AL的进位不会存储在AH中。

      在数据传送时,要注意指令的连两个操作对象的位数应该是一致的。

         

    • 物理地址

      CPU访问内存单元时,要给出内存地址,所有内存单元构成是一个一维线性空间,每一个内存单元在这个空间都有一个唯一地址,这个地址叫物理地址。

         

      CPU通过地址总线送入存储器的,必须是一个内存单元物理地址,必须现在内部形成这个地址。

         

    • 16位结构的CPU

         

      运算器一次最多可处理16位数据

      寄存器最大宽度为16位

      寄存器和运算器之间的通路为16位

         

    • 8086CPU给出物理地址的方法

         

         

      物理地址 = 段地址 * 16 + 偏移地址

         

    • 物理地址 = 段地址 * 16 + 偏移地址的本质含义

         

      基址地址 + 偏移地址

         

    • 段的概念

         

      我么可以认为 地址 10000H ~100FFH 的内存单元组成一个段,该段的起始地址为10000H, 段地址为1000H, 大小为100H;

      段的起始地址一定是16的整数倍,偏移地址16位,最大寻址能力64KB

         

    • 段寄存器

      8086有4个段寄存器 CS\DS\SS\ES

         

    • CS 和 IP

      CS 和 IP是8086CPU中最关键的寄存器,他们指示了CPU当前要读取指令的地址。

      CS 位代码段寄存器, IP 位指令指针寄存器

         

         

    • 修改CS 、IP 指令

         

         

         

    • 代码段

         

      根据需要,可以将一组内存单元定义为一个段(≤64KB)

    转载于:https://www.cnblogs.com/h3mmm/p/9839567.html

    展开全文
  • 汇编 寄存器

    2017-10-09 18:17:43
     AH&AL=AX(accumulator):累加寄存器...DH&DL=DX(data):数据寄存器  SP(Stack Pointer):堆栈指针寄存器  BP(Base Pointer):基址指针寄存器  SI(Source Index):源变址寄存器  DI(Destination
  • 数据寄存器

    千次阅读 2019-06-04 23:47:23
    AX、BX、CX、DX可以称为数据寄存器,这4个16位寄存器又可分别分成高8位(AH、BH、CH、DH)和低8位(AL、BL、CL、DL)。因此它们既可作为4个16位数据寄存器使用,也可作为8个8位数据寄存器使用,在编程时可存放源操作...
  • 8086寄存器

    2014-11-30 15:14:44
    SI源变址寄存器 DI目地变址寄存器 1:数据寄存器,一般称之为通用寄存器组 ...DH&DL=DX:数据寄存器,常用于数据传递。  2:地址寄存器/段地址寄存器 CS(Code Segment):代码段寄存器;  DS(Data Seg
  • 寄存器寄存器

    2011-04-13 09:44:00
    x86 general registers: 8-bit 16-bit 32-bit AH AX EAX AL BX EBX BH CX ECX BL DX EDX CH BP EBP ...DL DI EDI 3-bit register codes: EAX:000 ECX:001 EDX:010 EBX:011 ESP:...
  • 寄存器相关

    2017-05-24 09:37:59
    AH&AL=AX(accumulator):累加寄存器,常用于运算;在乘除等指令中指定用来存放操作数,另外,所有的I/O指令都使用这一寄存器与外界设备传送数据。 BH&BL=BX(base):基址寄存器,常用于地址索引 ...DH&DL=DX(dat
  • 汇编之寄存器

    2021-02-20 21:00:39
    汇编之寄存器 8位寄存器 16位寄存器 32位寄存器 ... DL DX EDX BL BX EBX AH SP .
  • 寄存器的认识

    2019-07-23 08:53:55
    寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址...dh,dl的八位寄存器)、指令指针寄存器(ip)、标志寄存器(flags)、段寄存器(cs,ds,es,ss)。它们的...
  • 通用寄存器

    2018-12-18 01:12:00
    长度为16bit 包括:ax,bx,cx,dx,si,di,bp,sp 其中,ax,bx,cx,dx,可以作为8位寄存器使用 ah,al bh,bl ch,cl dh,dl 转载于:https://www.cnblogs.com/sea-stream/p/10134886.html
  • 寄存器总结

    2014-09-19 22:25:30
    1. 32位通用寄存器 EAX(32), 其低16位为AX=AH(高8位)+AL(低8位...EDX DX=DH+DL 2. 32位通用寄存器 EBP 其低16位为 BP, 但没有对应的8位寄存器 EBP(32) BP(16) ESP(32) SP(16) ESI(32) SI(16) EDI(3...
  • 寄存器英文名字

    2019-04-11 01:47:08
    AH&AL=AX(accumulator):累加寄存器 ...DL=DX(data):数据寄存器 SP(Stack Pointer):堆栈指针寄存器 BP(Base Pointer):基址指针寄存器 SI(Source Index):源变址寄存器 DI(Destination In...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 527
精华内容 210
关键字:

dl寄存器