博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
汇编语言学习与记录(3)
阅读量:7031 次
发布时间:2019-06-28

本文共 1048 字,大约阅读时间需要 3 分钟。

寄存器概述

寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。

8086CPU有14个常用寄存器,AX,BX,CX,DX(这几个寄存器用来存放一般数据)....等(以后用到细说)

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

数据在寄存器中存放的情况

例:

数据:18
二进制:10010
表示情况:

从低位到高位去填,空位补0.

数据:20000

二进制:自己算吧,太J长
表示情况:

可以存储的最大数为多少?

2的16次方-1

高位寄存器是如何兼容低位寄存器的?

高位寄存器会分出若干个低位寄存器进行兼容,例如16位和8位,16位寄存器可以分成2个8位寄存器进行兼容,2个8位寄存器相互独立./

例如AX可以分为AH(高位)和AL(低位)两个寄存器.

如果是兼容之前的系统,就可以单独拿出低位寄存器.高位全部填0就行了.

再上个图加强理解

单位:字

一个字 = 2个字节 = 16位 = 4个16进制数 这个字的高8位和低8位就刚好存储在寄存器的高8位和低8位中

几条简单的汇编指令

下面看个问题

mov ax,4E20H

add ax,1406H //这句执行完AX = 6226H

mov bx,2000H

add ax,bx //这句执行完AX= = 8226H

mov bx,ax

add ax,bx

那么最后一句执行完 理应当为 8226H + 8226H = 1044CH; ,但是8086 AX为16位寄存器,所以最后ax中的数据为044CH. 高位舍弃掉(不是真的舍弃了,后面看到的时候再说)

此处接

物理地址

CPU访问内存单元的时候,都要向内存指明访问哪个地址的内存单元,所有内存单元组成的空间就是一个线性空间,在线性空间里面的每个内存单元都有唯一的地址,这个地址我们就叫做物理地址。

CPU通过地址总线送入存储器的地址必须是物理地址,这个物理地址是在CPU内部形成之后,才通过地址总线送入存储器的,不同的CPU计算物理地址的方式不同,我们这里先说8086的。

CPU内部有2个计算物理地址的特殊地址,那就是段地址偏移地址

8086CPU物理地址=段地址*16+偏移地址.

为什么物理地址要这么计算呢.

因为8086CPU是16位的,最大寻址能力就是2的16次方 64k,但是8086是有20根地址总线,寻址能力为1MB。所以,内部采用2个16位地址相加的方式合成20位地址.段地址*16 实际上就是左移4位。

转载地址:http://xjwal.baihongyu.com/

你可能感兴趣的文章
Java 接口技术 Interface
查看>>
函数草稿
查看>>
织梦系统学习:文章页当前位置的写法(自认对SEO有用)
查看>>
PHP经验——PHPDoc PHP注释的标准文档(翻译自Wiki)
查看>>
vue input输入框长度限制
查看>>
深入理解Java虚拟机(类加载机制)
查看>>
在500jsp错误页面获取错误信息
查看>>
iOS-CALayer遮罩效果
查看>>
为什么需要版本管理
查看>>
五、Dart 关键字
查看>>
React Native学习笔记(一)附视频教学
查看>>
记Promise得一些API
查看>>
javascript事件之调整大小(resize)事件
查看>>
20145234黄斐《Java程序设计》第六周学习总结
查看>>
【CLRS】《算法导论》读书笔记(四):栈(Stack)、队列(Queue)和链表(Linked List)...
查看>>
hibernate 和 mybatis区别
查看>>
互联网广告综述之点击率特征工程
查看>>
HDU3421 Max Sum II【序列处理】
查看>>
POJ NOI MATH-7653 地球人口承载力估计
查看>>
iOS UI高级之网络编程(HTTP协议)
查看>>