80x86的寻址方式及Dosbox演示
在进入介绍之前首先给大家说一下简单介绍一下DOSBox及DOSBox的使用
DOSBox 是一个 DOS 模拟程序,由于它采用的是 SDL 库,所以可以很方便的移植到其他的平台。目前,DOSBox 已经支持在 Windows、Linux、Mac OS X、BeOS 、palmOS、Android 、webOS、os/2等系统中运行。
如需要DOSBox,可到一下链接获取
链接:https://pan.baidu.com/s/1rGNR_VoAM6dZG_quwTMW-A
提取码:7ww1
操作DOSBox的步骤:
- 首先将DOSBox文件放入C盘或D盘
- 安装DOSBox
- 若放在C盘,打开界面输入mount c c:\masm,若是D盘将c换成d即可
- 输入c:->输入debug进入debug环境,即可进行相关操作
debug环境下的几条常用指令(debug中指令一般不区分大小写)
- — U 反汇编命令
- — D 查看内存单元neir
- — R 查看寄存器
- — A 编写指令
- — E 修改内存单元
- — T 执行命令
- — Q 退出debug环境
一、与数据有关的寻址方式
1、立即寻址方式(直接找数据本身,不用通过地址)
- 操作数直接存放在指令中,紧跟在操作码之后,它作为指令的一部分存在代码段里,这种操作数称为立即数。
- 立即数寻址用来表示常数,它经常用于给寄存器赋初值,并且只能用于源操作数字段,不能用于目标操作数字段,且源操作数字与目标操作数字长度一致。
- 举几个栗子并在Dosbox上演示一下
(1) MOV AL,5 执行后AL里的值为05H
(2) MOV AX,3064H 执行之后AX里的值为3064H
(3) MOV EAX,12345678H 执行之后EAX里的值为12345678H
2、寄存器寻址方式
- 操作数存在寄存器中,指令指定寄存器号。
- 对于16位操作数,寄存器可以是AX,BX,和CX,DX,SI,DI,SP,BP;
- 对于8位操作数,寄存器可以是AL,AH,BL,BH,CL,CH,DL,DH;
- 对于32位操作数,寄存器可以是EAX,EBX,ECX,EDX,ESI,EDI,ESP,EBP;
- 举个栗子并在Dosbox上演示一下
MOV AX,BX执行指令前(AX) = 3064H,(BX) = 1234H,执行指令后(AX) = 1234H,BX保持不变
有效地址
在80x86系统中,我们将操作数的偏移地址称为有效地址(effective address,EA),寻址方式其实就是为求得有效地址的不同途径。
有效地址由四个成分组成:
- 位移量是存放在指令中的一个8位,16位或32位的数,但它不是一个立即数,是一个地址。
- 基址是存在基址寄存器中的内容。它是有效地址中的基址部分,通常用来指向数据段中的数组或是字符串的首地址。
- 变址是存放在变址寄存器中的内容。它通常用来访问数组中的某个元素或是字符串中的某个字符。
- 比例因子386及其后继机型新增加的寻址方式中的一个术语,其值可为1,2,4,8。
有效地址的计算公式
- EA = 基址+(变址 * 比例因子) + 位移量
3、直接寻址方式
- 操作数的有效地址只包含位移量一种成分,其值就放在代码段中指令的操作码之后
- 位移量及操作数的有效地址。
- 举个栗子并在Dosbox上演示一下
MOV AX,[2000H]若是(DS) = 3000H,执行后(AX) = 3050H
4、寄存器间接寻址方式
- 操作数的有效地址只包含基址寄存器内容或变址寄存器内容的成分。
- 16位寻址可用寄存器BX,BP,SI,DI;
- 32位寻址可用寄存器EAX,EBX,ECX,EDX,ESI,EDI,ESP,EBP;
- 举个栗子并在Dosbox上演示一下
MOV AX,[BX]若(DS) = 2000H,(BX) = 1000H则物理地址 = 20000+1000 = 21000H执行结束(AX) = 50A0H
5、寄存器相对寻址方式
- 操作数的有效地址为基址寄存器或变址寄存器的内容和指令中指定的位移量之和,所以有效地址由两部分组成。
- 举个栗子
MOV AX,COUNT[SI]COUNT为16位位移量的符号地址,若(DS) = 3000H,(SI) = 2000H,COUNT = 3000H则物理地址 = 30000 + 2000 + 3000 = 35000h执行结果(AX) = 1234H
6、基址变址寻址方式
- 操作数的有效地址是一个基址寄存器和一个变址寄存器的内容之和,所以有效地址由两部分组成。
- 举个栗子
MOV AX,[BX][DI]若(DS) = 2100H,(BX) = 0158H,(DI) = 10A5H则EA = 0158 + 10A5 = 11FDH物理地址 = 21000 + 11FD = 221FDH
7、相对基址变址寻址方式
- 操作数的有效地址是基址寄存器和变址寄存器的内容加上指令中指定位置位移量之和,所有有效地址由三部分组成。
- 举个栗子
MOV AX,MASK[BX][SI](或者可以写成MOV AX,[MASK+BX+AX])若(DS) = 3000H (BX) = 2000H,(SI) = 1000H, MASK = 0250H则物理地址 = 30000 +2000 + 1000 + 0250 = 33250H执行之后 (AX) = 1234H
后三种寻址方式不经常使用,这里简单介绍一下
8、比例变址寻址方式
- 有效地址由三部分组成:变址寄存器内容乘以指令中指定的比例因子加上位移量之和
9、基址比例变址寻址方式
- 有效地址有三部分组成:变址寄存器内容乘以比例因子加上基址寄存器内容之和
10、相对基址比例变址寻址方式
- 有效地址由四部分组成:变址寄存器内容乘以比例因子加上基址寄存器内容,再加上位移量之和。
80x86的寻址方式及Dosbox演示相关推荐
- 微型计算机寻址方式命令,寻址方式与基本指令-微机原理实验报告.docx
西安郵電大學 微型计算机原理 课内实验报告书 院系名称 : 计算机学院 实验题目 : 寻址方式与基本指令 学生姓名 : 专业名称 : 软件工程 班 级 : 软件1003班 学号 : 指导教师 : 葛茂 ...
- 微机期末速通---不挂科版
寄存器一格放8位一个字节 伪指令和指令的区别在于,每一条指令必须生成机器代码,然后在程序运行期间由CPU来执行其操作:而伪指令是在汇编期间由汇编程序执行的操作命令,除了数据定义及存储器分配伪指令分配存 ...
- 计算机面试(考研复试)问题整理
中科大复试准备 数据结构->操作系统->计算机网络->通信原理->微机原理-> 软件工程,编译原理,数据库 计算机考研复试整理 PDF文件自取 数据结构 1. 时间复杂度 ...
- 考研复试面试专业问题
中科大复试准备 数据结构->操作系统->计算机网络->通信原理->微机原理-> 软件工程,编译原理,数据库 计算机考研复试整理 PDF文件自取 数据结构 1. 时间复杂度 ...
- 【已更新】北航计算机学院考研知识点总结(专业课961)
#文档整理不易,有偿资料详讯wechat:_129Ww 961复习要点 文章目录 961复习要点 计组 概述 计算机组成与结构概述 基本组成 计算机的功能 计算机中数的表示 基本约束:采用二进制,只有 ...
- 微型计算机接口及基础,微型计算机技术与接口应用基础
微型计算机技术与接口应用基础 语音 编辑 锁定 讨论 上传视频 <微型计算机技术与接口应用基础>是2011年清华大学出版社出版的一本图书[1] 书 名 微型计算机技术与接口应用基础 ...
- 408计算机复试专业课问答汇总
第一部分 桶排序 又要代码精简,又要运行效率提高,分别在 C 语言和 C++语言里面,你如何做优化?对于参加过算法比赛的学生来说这应该不难.在 C 里面比如把递归改成迭代,通过设置判断变量减少不必要的 ...
- 计算机硬件技术基础(太原理工大学):第五章
复习点 一.指令和指令系统 1.指令 a.指令格式 b.指令的操作码 c.指令的地址码 2.指令系统 二.80X86的寻址方式 1.指令寻址 (1)顺序寻址 (2)跳转寻址 a.相对寻址(较为常用) ...
- C语言编程实训企业计算,C语言编程项目实训
24.C语言编程项目实训(高级)(全日制一个半月,夜班三个月,学费1390元) 理论与实操一体化课程: 一.C语言基础:1.应用C语言的各种特点:2.应用算法的含义.特点.表示方法 二.C的基本数据类 ...
最新文章
- 下载备忘:甘特图实现的代码
- 量子纠缠buff加持,雷达精度提高500倍,论文已登物理顶刊
- 获取指定文件夹下的所有文件名
- maven install (window 7)
- PWA(Progressive Web App)入门系列:(五)Web Worker
- Deep Learning for Content-Based Image Retrival:A Comprehensive Study 论文笔记
- OI生涯回忆录(Part8:至高一省选Day1)
- 人要像鹰一样重生、蜕变、成长
- 【demo记录】百度地图获取当前所在城市
- 电商品牌私域流量社群运营推广裂变sop搭建营销计划表格方案
- 手机必备应用:狐猴浏览器,一站式开启浏览器的所有用法
- echarts 地图和柱状图结合(在地图上显示柱状图)
- Android5.1自定义闹钟铃声,vivo手机怎么添加自定义闹钟铃声
- 三大相关性分析之python
- BiSS-C的基本组网原理介绍
- Docker容器搭建运行python深度学习环境
- 聊一聊 JavaScript 的一些奇葩知识
- 轻量级开发编辑器 sublime text 3 使用心得
- 音频PCM数据的单声道、双声道之间的转换
- 语义分割-Rethinking BiSeNet For Real-time Semantic Segmentation-1-Cityscapes数据集