CS萌新的汇编学习之路02 Learning of Assembly Language
第二节课 寄存器
1. 寄存器的定义: 进行信息储存的器件,是CPU中程序员可以读写的部件,通过改变各种寄存器中的内容来实现对CPU的控制
2. 寄存器的种类: 本节课学习通用寄存器和段寄存器
2.1 通用寄存器
8086CPU中,所有的寄存器都是16位的,可以存放两个字节。AX,BX,CX,DX这四个寄存器通常用来存放一般性的数据,被称为通用寄存器。
8086CPU的上一代CPU中的寄存器都是8位的,为了保证兼容,AX,BX,CX,DX这四个寄存器都可以分为两个8位的小寄存器来用。8086CPU可以一次性处理字节和字,字节(byte)是8个bit组成;字(word)是由两个字节组成(高位字节和低位字节)
例如,AX分为AH和AL (高位和低位)AH为高8位,从00H到FFH,AL为低8位,从00H到FFH。两个按照AX=AH*100H+AL组合在一起。但是在对于AL、AH的单独运算中,产生进位是不予考虑的,比如单独对AL做加法,产生的进位不会加到AH里面,AH的进位也不予添加(超出AX范围了)。但是对于AX的计算考虑在AX范围内的进位,超出AX范围不考虑(直接舍去)。
2.2 物理地址和计算物理地址的方法
CPU访问内存单元,需要给出内存单元的地址,这个唯一的地址为物理地址。
8086CPU为16位结构的CPU机,意味着运算器一次性最多能处理16位的数据,寄存器的最大宽度为16,寄存器于运算器之间的通路为16位,但是8086CPU地址总线为20 位,达到1M的寻址能力,所以内部采用两个16位地址合成的方法来形成物理地址。
CPU中的相关部件提供段地址和偏移地址,段地址和偏移地址通过地址加法器进行 物理地址=段地址*10H+偏移地址 的合成方法产生物理地址,通过内部总线将20位物理地址送入输入输出控制电路,再将物理地址送入地址总线,被传送到储存器。
由于段地址是16进制的,故而只要左移一位加上偏移地址即可。
2.3 内存分段化和段寄存器
将内存分段操作,要找的物理地址在段中,以段起始地址/10H为段地址,由于16位地址的寻址能力为64KB,段的大小在64KB(10000H B)内。因此偏移地址为0~FFFFH之间
例如:有一个数据存放在内存20000H单元中,现在给定段地址为SA,若想用偏移地址选找到此单元,则SA应满足的条件为:最小为1001H,最大为2000H。 解析:由于偏移地址为0~FFFFH之间,故而最大值为(2000H*10H-0H)/10H=2000H;而最小值为(2000H*10H-FFFFH)/10H,但是由于2000H*10H-FFFFH=10001H不为10H的整数倍,所以取进一位的10010H,故而最小值为 10010H/10H=1001H
段寄存器就是存放段地址的寄存器,8086包括4个:CS,DS,SS,ES
CS和IP寄存器:CS为代码段寄存器,IP为指令指针寄存器。 8086CPU从以 CS*10H+IP 为地址的内存单元开始当作指令执行(即把CS:IP的指向的内容当作指令)。每次读取一个指令,IP自动加上指令的字数(代码段的长度)作为读取下一个指令的首地址。
可以修改CS,IP的指令,例如:
jmp 2AE3:3 执行后,CS=2AE3H,IP=0003H
jmp ax 执行后,IP会替换成ax储存的内容
注意!8086CPU加电启动或者复位后(即CPU刚开始工作时),CS和IP被设置为(FFFFH:0000H)所以,FFFF0H单元中的指令是8086PC机开机后执行的第一条指令。而且,CPU把CS:IP指向的内存单元内容看作指令。如果内存中的一段信息被CPU执行过的话,它所在的内存单元必定被CS:IP指向过。任意时刻,8086CPU将CS:IP指向的内容当作指令执行。
几个简单的汇编指令:
mov ax,4e20h 把4e20h加到ax中
sub ax,4e20h 把ax中的数据减去4e20h
mov ax,bx 把ax中的数减去bx中的数,并且储存在ax中
CS萌新的汇编学习之路02 Learning of Assembly Language的更多相关文章
- CS萌新的汇编学习之路(其实是老师作业呵呵哒)Learning of Assembly Language
第一节课学习汇编语言,做笔记,做笔记 1.概念 首先是汇编语言这门课程的定义以及对于学习高级语言.深入理解计算机系统的作用 软硬件接口机器语言 汇编语言 高级语言 关系 机器语言和汇编语言可移植性差 ...
- 大数据萌新的Python学习之路(一)
笔记开始简介 从2018年9月份正式进入大学的时代,大数据和人工智能的崛起让我选择了计算机专业学习数据科学与大数据技术专业,接触的第一门语言就是C语言,后来因为同学推荐的原因进入了学校的人工智能研究协 ...
- 大数据萌新的Python学习之路(三)
笔记内容: 一.集合及其运算 在之列表中我们可以存储数据,并且对数据进行各种各样的操作.但是如果我们想要对数据进行去重时是十分麻烦的,需要使用循环,要建立新的列表,还要 进行对比,十分的麻烦,还消耗 ...
- 大数据萌新的Python学习之路(二)
笔记内容: 一.模块 Python越来越被广大程序员使用,越来越火爆的原因是因为Python有非常丰富和强大标准库和第三方库,几乎可以实现你所想要实现的任何功能,并且都有相应的Python库支持,比如 ...
- Spring Boot的学习之路(02):和你一起阅读Spring Boot官网
官网是我们学习的第一手资料,我们不能忽视它.却往往因为是英文版的,我们选择了逃避它,打开了又关闭. 我们平常开发学习中,很少去官网上看.也许学完以后,我们连官网长什么样子,都不是很清楚.所以,我们在开 ...
- ReactNative新手学习之路02第一个RN项目
开始第一个RN项目(iOS版)我的电影列表0.1版,后面做列表版 打开上一节项目 index.ios.js,android打开index.android.js.我这里使用的是Atom编辑器,你也可以使 ...
- Quartz.Net 学习之路02 初探Quartz.Net
第二讲:简单的实例,看看Quartz.Net强在哪里? 直接上代码,代码里有注释: using System; using Quartz; using Quartz.Impl; namespace L ...
- python学习之路02
1.python的数据类型有:Number String List Truple Sets Dictionary . 数字类型:int float bool complex 2.不可变数据:数字 字符 ...
- Django学习之路02
静态文件配置 html文件默认全都放在templates文件夹下 对于前段已经写好了的文件, 我们只是拿过来使用 那么这些文件都可以称之为叫"静态文件"静态文件可以是 bootst ...
随机推荐
- Triangle Count
Given an array of integers, how many three numbers can be found in the array, so that we can build a ...
- DevExpress之TreeList控件用作导航使用说明
最近项目用的是DEV界面框架, 由于各控件属性太多,以免遗忘.所以做个笔录.也方便有这方面需求的网友交流学习.下面开始讲解具体实现步骤. 一.先布局,设置相关属性. 1.首先到工具箱拖一个 TreeL ...
- 手把手教你如何使用Cocos2d Console 进行html5项目发布
手把手教你如何使用Cocos2d Console 进行html5项目发布 1.首先需要先安装Cocos2d Console运行需要的工具. 详情参见 这篇文章 http://www.cocoach ...
- 20145338 《网络对抗》 MSF基础应用
20145338<网络对抗> MSF基础应用 实验内容 ·掌握metasploit的基本应用方式,掌握常用的三种攻击方式的思路. 具体需要完成(1)一个主动攻击;(2)一个针对浏览器的攻击 ...
- ESP32搭建3.ubuntu14.04下搭建esp32开发环境 (10-5)
硬件为乐鑫出品的ESP32一款集成了wifi和蓝牙的集成模块. 1.首先ctrl+alt+t打开终端,sudo -s选择用root权限登陆 . 2. 输入指令:sudo apt-get install ...
- day04 list tuple
一. 上节课内容回顾 字符串 由', ", ''', """括起来的内容是字符串 字符:单一文字符号. 字符串: 把字符连成串(有顺序的) 索引和切片 s[st ...
- Thymeleaf中href与 th:href的区别
语法格式如下: <a th:href="@{/channel/page/add}">添加渠道 </a> <a href="/channel/ ...
- GIT和SVN版本控制
Git 与SVN SVN 是集中式版本控制系统: 先说集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了, ...
- 2018-4-25 初识html
第一天 简单了解web 路线 html css js 发布网站 web运作 html html是超文本语言,也就是标记语言.说白了也就规定了一些符号,然后赋予这些符号意义.比如规定a就是超链接标签,用 ...
- CCF CSP 201803-3 URL映射
转载自 https://blog.csdn.net/tigerisland45/article/details/81697594 /* CCF201803-3 URL映射 */ #include &l ...