8086汇编-7寄存器(CPU工作原理)02

#pragma once
/* 7-寄存器(CPU工作原理)02

  字在寄存器中的存储
    一个字可以存在一个16位寄存器中,这个字的高位字节和低位字节自然就存在这个寄存器的高8位寄存器和低8位寄存器中。   字 暂用 2个字节 也就是 字 == 2 Byte  , 字的英文是WORD    1 WORD == 2 Byte == 16bit ,WORD 是
16位 为一个单位的.

  关于数制的讨论    
    由于一个内存单元可以存放 8位数据,CPU中的寄存器又可存放 n 个 8位数据。也就是说,计算机中的数据大多是由1~N个8位数据构成的。用十六进制来表示数据可以直观的看出这个数据是由哪些8位数据构成的。每两位对应一个
八进制!

  几条汇编指令
    汇编指令不区分大小写!!!!

    汇编指令             操控CPU完成的操作                    用高级语言的语法描素
    mov ax,78             将78送入ax                            ax = 78
    mov ah,78             将78送入ah                            ah = 78
    add ax,8             将寄存器ax中的数值加上8            ax = ax + 8
    mov ax,bx             将寄存器bx中的数据送入寄存器ax        ax = bx
    add ax,bx             将ax,bx中的内容相加,结果存放在ax中    ax = ax+bx
    
    CPU执行下表中的程序段的每条指令后,对寄存器中的数据进行的改变。当16位的寄存器要存储一个超过16位的数据时候,高位15位以上的数据会被抛弃,也就是从第16位开始的数据被丢到了.1044C 如果放在ax寄存器中就是 044C,但
是计算机不是真的把 1044C 的1 给抛弃了而是放到了别的地方,以后的课程会进行解释,而ax 中只能存放 044C 了.

    当16位寄存器的8位寄存器单独拿出来计算的时候,并且最后要存储的值超出了8位的大小,那么也和上面一样,多出去的高位被丢掉了.只保留能存放的数据.例如 AX 16位寄存器有两个 8位寄存器,一个是高位 AH,一个是低位AL 寄存
器,当我们把AX 16位寄存器分开来分拨用AH和AL来表示的时候,这个时候AH 或者AL 就是独立的8位寄存器了,使用他们也应该独立的去计算,虽然它们改变会影响AX 16位寄存器的值,但是也是独立的.

    这里的丢失,指的是进位制不能在 8 位寄存器中保存,但是 CPU 不是并真的不丢弃 这个进位值,这个问题会在后面的课程中讨论。

  检测点:
    
    (1)写出每条汇编指令执行后相关寄存器中的值 , 答案我就直接给出了,如果自己有心练习把答案扣掉就行了.
        
        mov ax,62627        ax == F4A3H == 62627   要知道,在寄存器中的值都是显示十六进制的所以,我们要用十六进制展示
        mov ah,31H            ax == 31A3H
        mov al,23H            ax == 3123H
        add ax,ax            ax == 6246H
        mov bx,826CH        bx == 826CH
        mov cx,ax            cx == 6246H
        mov ax,bx            ax == 826CH
        add ax,bx            ax == 04D8H
        mov al,bh            ax == 0482H
        mov ah,bl            ax == 6C82H
        add ah,ah            ax == D882H
        add al,6            ax == D888H
        add al,al            ax == D810H
        mov ax,cx            ax == 6246H

    (2)只能使用目前学过的汇编指令,最多使用四条指令,编程计算2的4次方。
        mov ax,2
        add ax,ax
        add ax,ax
        add ax,ax        因为是2的4次方,所以每次都是乘2 ,乘2 就等于 ax = ax + ax

  

*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值