公司法
当前位置: 首页 法律大全

汇编对应的端口地址范围(解决汇编中的寻址方式)

时间:2023-05-24 作者: 小编 阅读量: 1 栏目名: 法律大全

存储器寻址方式的操作数存放在主存储器中,用其所在主存的位置表示操作数。在这种寻址方式下,指令中给出的是有关操作数的主存地址信息。立即数可以是8位、16位或32位,该数值紧跟在操作码之后。以上指令中的第二操作数都是立即数,在汇编语言中,规定:立即数不能作为指令中的第二操作数。该规定与高级语言中“赋值语句的左边不能是常量”的规定相一致。

存储器

存储器(Memory)是现代信息技术中用于保存信息的记忆设备。其概念很广,有很多层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。

计算机中全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。有了存储器,计算机才有记忆功能,才能保证正常工作。计算机中的存储器按用途存储器可分为主存储器(内存)和辅助存储器(外存),也有分为外部存储器和内部存储器的分类方法。外存通常是磁性介质或光盘等,能长期保存信息。内存指主板上的存储部件,用来存放当前正在执行的数据和程序,但仅用于暂时存放程序和数据,关闭电源或断电,数据会丢失。

寻址

寻址是数据恢复技术的基础,是定位数据和扇区的关键。寻址这个概念比较抽象,简单的说是磁头在盘片上定位数据的一个过程。如果你想找到你的计算机中的一个文件,你可能会在Windows中先打开我的电脑、分区、文件夹,再打开你要找的文件。这是表面的寻找文件的过程,而磁头在盘片的寻找过程就是寻址。 寻址在数据恢复中为什么非常重要?因为当数据出现丢失的情况后,你在我的电脑、分区、文件夹下就找不到这个文件了,甚至找不到文件夹和分区。

计算机有多种寻址方式,如立即数寻址方式,寄存器寻址,存储器寻址方式,与I/0端口有关的寻址方式,又包括直接端口寻址和间接端口寻址。

存储器寻址方式有哪些?

存储器寻址方式的操作数存放在主存储器中,用其所在主存的位置表示操作数。在这种寻址方式下,指令中给出的是有关操作数的主存地址信息。8088的存储器空间是分段管理的。程序设计时采用逻辑地址;由于段地址在默认的或用段超越前缀指定的段寄存器,所以采用偏移地址,称之为有效地址(EffecTIve Address, EA) 1. 直接寻址

在这种寻址方式下,指令中直接包含了操作数的有效地址,跟在指令操作码之后。其默认的段地址在DS段寄存器中,可以采用段超越前缀。

例 将数据段中偏移地址2000H处的内存数据送至AX寄存器。 MOV AX, [2000H]

该指令中给定了有效地址2000H, 默认与数据段寄存器DS一起构成操作数所在存储单元的物理地址。

更多linux内核视频教程文档资料免费领取后台私信【内核】自行获取.

Linux内核源码/内存调优/文件系统/进程管理/设备驱动/网络协议栈-学习视频教程-腾讯课堂

七种寻址方式(立即寻址、寄存器寻址)一、立即寻址方式

操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。

立即数可以是8位、16位或32位,该数值紧跟在操作码之后。如果立即数为16位或32位,那么,它将按“高高低低”的原则进行存储。例如:

MOV AH, 80HADD AX, 1234HMOV ECX, 123456HMOV B1, 12HMOV W1, 3456HADD D1, 32123456H

其中:B1、W1和D1分别是字节、字和双字单元。

以上指令中的第二操作数都是立即数,在汇编语言中,规定:立即数不能作为指令中的第二操作数。该规定与高级语言中“赋值语句的左边不能是常量”的规定相一致。

立即数寻址方式通常用于对通用寄存器或内存单元赋初值。

二、寄存器寻址方式

指令所要的操作数已存储在某寄存器中,或把目标操作数存入寄存器。把在指令中指出所使用寄存器(即:寄存器的助忆符)的寻址方式称为寄存器寻址方式。指令中可以引用的寄存器及其符号名称如下:8位寄存器有:AH、AL、BH、BL、CH、CL、DH和DL等;16位寄存器有:AX、BX、CX、DX、SI、DI、SP、BP和段寄存器等;32位寄存器有:EAX、EBX、ECX、EDX、ESI、EDI、ESP和EBP等。寄存器寻址方式是一种简单快捷的寻址方式,源和目的操作数都可以是寄存器。

1、源操作数是寄存器寻址方式如:ADD VARD, EAXADD VARW, AXMOV VARB, BH等。其中:VARD、VARW和VARB是双字,字和字节类型的内存变量。在第4章将会学到如何定义它们。

2、目的操作数是寄存器寻址方式如:ADD BH, 78hADD AX, 1234hMOV EBX, 12345678H等。

3、源和目的操作数都是寄存器寻址方式如:MOV EAX, EBXMOV AX, BXMOV DH, BL等。

由于指令所需的操作数已存储在寄存器中,或操作的结果存入寄存器,这样,在指令执行过程中,会减少读/写存储器单元的次数,所以,使用寄存器寻址方式的指令具有较快的执行速度。通常情况下,我们提倡在编写汇编语言程序时,应尽可能地使用寄存器寻址方式,但也不要把它绝对化。

七种寻址方式(直接寻址方式)

指令所要的操作数存放在内存中,在指令中直接给出该操作数的有效地址,这种寻址方式为直接寻址方式。

在通常情况下,操作数存放在数据段中,所以,其物理地址将由数据段寄存器DS和指令中给出的有效地址直接形成,但如果使用段超越前缀,那么,操作数可存放在其它段。

例:假设有指令:MOV BX, [1234H],在执行时,(DS)=2000H,内存单元21234H的值为5213H。问该指令执行后,BX的值是什么?

解:根据直接寻址方式的寻址规则,把该指令的具体执行过程用下图来表示。

从图中,可看出执行该指令要分三部分:

由于1234H是一个直接地址,它紧跟在指令的操作码之后,随取指令而被读出;

访问数据段的段寄存器是DS,所以,用DS的值和偏移量1234H相加,得存储单元的物理地址:21234H;

取单元21234H的值5213H,并按“高高低低”的原则存入寄存器BX中。

所以,在执行该指令后,BX的值就为5213H。

由于数据段的段寄存器默认为DS,如果要指定访问其它段内的数据,可在指令中用段前缀的方式显式地书写出来。

下面指令的目标操作数就是带有段前缀的直接寻址方式。

MOV ES:[1000H], AX

直接寻址方式常用于处理内存单元的数据,其操作数是内存变量的值,该寻址方式可在64K字节的段内进行寻址。

注意:立即寻址方式和直接寻址方式的书写格式的不同,直接寻址的地址要写在括号“[”,“]”内。在程序中,直接地址通常用内存变量名来表示,如:MOV BX, VARW,其中,VARW是内存字变量。

试比较下列指令中源操作数的寻址方式(VARW是内存字变量):MOV AX, 1234H MOV AX, [1234H] ;前者是立即寻址,后者是直接寻址MOV AX, VARW MOV AX, [VARW] ;两者是等效的,均为直接寻址

七种寻址方式(寄存器间接寻址方式)

操作数在存储器中,操作数的有效地址用SI、DI、BX和BP等四个寄存器之一来指定,称这种寻址方式为寄存器间接寻址方式。该寻址方式物理地址的计算方法如下:

在不使用段超越前缀的情况下,有下列规定:

若有效地址用SI、DI和BX等之一来指定,则其缺省的段寄存器为DS;若有效地址用BP来指定,则其缺省的段寄存器为SS(即:堆栈段)。

例:假设有指令:MOV BX,[DI],在执行时,(DS)=1000H,(DI)=2345H,存储单元12345H的内容是4354H。问执行指令后,BX的值是什么?

解:根据寄存器间接寻址方式的规则,在执行本例指令时,寄存器DI的值不是操作数,而是操作数的地址。该操作数的物理地址应由DS和DI的值形成,即:

PA=(DS)16 DI=1000H16 2345H=12345H。

所以,该指令的执行效果是:把从物理地址为12345H开始的一个字的值传送给BX。

其执行过程如图所示。

七种寻址方式(寄存器相对寻址方式)

操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)或变址寄存器(SI、D

I)的内容和指令中的8位/16位偏移量之和。其有效地址的计算公式如公式所示。

在不使用段超越前缀的情况下,有下列规定:

若有效地址用SI、DI和BX等之一来指定,则其缺省的段寄存器为DS;

若有效地址用BP来指定,则其缺省的段寄存器为SS。指令中给出的8位/16位偏移量用补码表示。在计算有效地址时,如果偏移量是8位,则进行符号扩展成16位。当所得的有效地址超过0FFFFH,则取其64K的模。

例:假设指令:MOV BX, [SI 100H],在执行它时,(DS)=1000H,(SI)=2345H,内存单元12445H的内容为2715H,问该指令执行后,BX的值是什么?

解:根据寄存器相对寻址方式的规则,在执行本例指令时,源操作数的有效地址EA为:

EA=(SI) 100H=2345H 100H=2445H

该操作数的物理地址应由DS和EA的值形成,即:

PA=(DS)16 EA=1000H16 2445H=12445H。

所以,该指令的执行效果是:把从物理地址为12445H开始的一个字的值传送给BX。

七种寻址方式(基址加变址寻址方式)

操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)和一个变址寄存器(SI、DI)的内容之和。其有效地址的计算公式如公式所示。

在不使用段超越前缀的情况下,规定:如果有效地址中含有BP,则缺省的段寄存器为SS;否则,缺省的段寄存器为DS。

例:假设指令:MOV BX, [BX SI],在执行时,(DS)=1000H,(BX)=2100H,(SI)=0011H,内存单元12111H的内容为1234H。问该指令执行后,BX的值是什么?

解:根据基址加变址寻址方式的规则,在执行本例指令时,源操作数的有效地址EA为:

EA=(BX) (SI)=2100H 0011H=2111H

该操作数的物理地址应由DS和EA的值形成,即:

PA=(DS)16 EA=1000H16 2111H=12111H

所以,该指令的执行效果是:把从物理地址为12111H开始的一个字的值传送给BX。

七种寻址方式(相对基址加变址寻址方式)

操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)的值、一个变址寄存器(SI、DI)的值和指令中的8位/16位偏移量之和。其有效地址的计算公式如公式所示。

在不使用段超越前缀的情况下,规定:如果有效地址中含有BP,则其缺省的段寄存器为SS;否则,其缺省的段寄存器为DS。

指令中给出的8位/16位偏移量用补码表示。在计算有效地址时,如果偏移量是8位,则进行符号扩展成16位。当所得的有效地址超过0FFFFH,则取其64K的模。

例:假设指令:MOV AX, [BX SI 200H],在执行时,(DS)=1000H,(BX)=2100H,(SI)=0010H,内存单元12310H的内容为1234H。问该指令执行后,AX的值是什么?

解:根据相对基址加变址寻址方式的规则,在执行本例指令时,源操作数的有效地址EA为:

EA=(BX) (SI) 200H=2100H 0010H 200H=2310H

该操作数的物理地址应由DS和EA的值形成,即:

PA=(DS)16 EA=1000H16 2310H=12310H

所以,该指令的执行效果是:把从物理地址为12310H开始的一个字的值传送给AX。

从相对基址加变址这种寻址方式来看,由于它的可变因素较多,看起来就显得复杂些,但正因为其可变因素多,它的灵活性也就很高。比如:

用D1[i]来访问一维数组D1的第i个元素,它的寻址有一个自由度,用D2[i][j]来访问二维数组D2的第i行、第j列的元素,其寻址有二个自由度。多一个可变的量,其寻址方式的灵活度也就相应提高了。

相对基址加变址寻址方式有多种等价的书写方式,下面的书写格式都是正确的,并且其寻址含义也是一致的。

MOV AX, [BX SI 1000H]MOV AX, 1000H[BX SI]MOV AX, 1000H[BX][SI]MOV AX, 1000H[SI][BX]

但书写格式BX [1000 SI]和SI[1000H BX]等是错误的,即所用寄存器不能在“[“,”]”之外,该限制对寄存器相对寻址方式的书写也同样起作用。

相对基址加变址寻址方式是以上7种寻址方式中最复杂的一种寻址方式,它可变形为其它类型的存储器寻址方式。下表列举出该寻址方式与其它寻址方式之间的变形关系。

什么是存储器寻址?

比如MOV AL, [BP]AL和BP都是寄存器,为什么叫储存器寻址啊?存储器 寻址是 寄存器 与存储器间的 寻址方式 。使用存储器寻址的 指令 ,其 操作数 通常存放在 代码段 之外的存储区,如 数据段 、 堆栈段 和附加段。指令中,通常给出的是 存储单元 地址或产生存储单元地址的有关信息。执行指令时,需要首先计算出数据存放的 有效地址 ,接着计算出其在存储器中的 物理地址 ,然后访问存储器,读取数据,再执行指令规定的基本操作。

- - 内核技术中文网 - 构建全国最权威的内核技术交流分享论坛

转载地址:解决汇编中的寻址方式! - 圈点 - 内核技术中文网 - 构建全国最权威的内核技术交流分享论坛

    推荐阅读
  • 怎样养好盆栽百合花(盆栽百合花又香又高贵)

    怎样养好盆栽百合花百合开花香气浓郁,艳丽而娇嫩,含苞待放,芬芳吐蕊,是特别深受人们喜爱的一种花卉。在选择的时候一定要选择正规的商家,选择对版的百合才能符合自己的心愿。大约两个月左右,就可以看到百合花开出艳丽的花朵了。百合花开完花之后不要丢掉,直接把它的残花修掉就可以了。

  • 绵阳市有哪些旅游景点好玩(旅行攻略之四川省绵阳市)

    绵阳又称为“中国科技城”,位于四川西北部盆地。风景优美,家人爬爬山不错,有天然溶洞)六:越王楼七:潼川古城(历史悠久,晚上夜景很不错。我国两弹就是在这里研究成功的。是个不错的打卡地)以上十个都是不错的景点,绵阳美食也有很多,米粉、锅盔、冒菜、酥饼、凉粉、醪糟、片粉、还有很多美食,大家可以去品尝一下

  • 忍界大战我爱罗带什么秘卷(这样带秒杀敌人)

    忍界大战我爱罗带什么秘卷带水龙卷和查克拉,水龙卷追踪可以更好地封走位,查克拉能配合大招迅速击杀敌人。在第四代风影遇刺不久后继任成为第五代风影,领导并守护着砂隐村,曾一度被“晓”抽去了一尾守鹤而死亡,最后被千代牺牲性命复活。第四次忍界大战中,我爱罗担任忍者联军队长与第四部队统领。战争结束后,我爱罗仍继续担任风影的职位,还和鸣人及木叶村等人维持着友好的关系。

  • 长春有哪些专科学校(长春的专科学校有哪些)

    师范教育部组建),是吉林省、长春市政府在“十二五”期间重点扶持建设的全省唯一一所师范高等专科学校。长春医学高等专科学校,是经教育部批准的全日制普通高等专科学校,“卓越医生教育培养计划”试点高校。

  • 明日之后夜魔是什么(夜魔特点介绍)

    明日之后夜魔是夜晚出现的野怪每当夜幕降临时,玩家总会收到一条特殊的提醒,那就是连续不断的紧凑三声喇叭声,并提示玩家“喇叭声唤醒了什么”,下面我们就来聊聊关于明日之后夜魔是什么?明日之后夜魔是什么明日之后夜魔是夜晚出现的野怪。其实,这个喇叭声唤醒的就是“夜魔”,出现这条提醒之后,也将意味着在不久过后有一位夜魔大人将亲自光顾你的家园,并向你寒暄温暖,表达最衷心的祝福!

  • 三本末世流小说推荐(10本末日基建玄幻类文)

    幸好“末日营地”游戏自由度极高。公测结束,她满心期待游戏正式运营,不料全球沦为游戏场……袁香儿学艺初成,入妖林,欲擒一小妖,契之以为使徒。袁香儿心中不忍,将其带回家中,哺食裹伤,悉心照料。至此之后,每天外出归来的袁香儿欣喜的发现家门口总会多出一些奇怪的礼物。小招待所内水电齐全,只要支付晶核就可以获得安全的居所美味的食物。

  • 哄女朋友的暖心故事(哄女友开心的故事)

    问老总老总,大家这儿有木有红萝卜?仔猪太胖了,猪妈妈担忧仔猪的身心健康,让仔猪减肥瘦身,猪妈妈每日监管仔猪慢跑。此刻小狗狗来找仔猪,猪妈妈恰好让小狗狗监管仔猪,小狗狗同意了猪妈妈。临行的情况下,猪妈妈刻意交待仔猪不可以喝凉水和吃凉的物品。仔猪开心的吃完起來,但是还没有等吃了,仔猪就肚子痛的倒在了地底,此刻猪妈妈正巧回家,立刻带著仔猪来到医院门诊。

  • 2060打游戏好吗(2060不仅节目全网出圈广受好评)

    10月22日起,江苏卫视推出了一档国产原创动漫形象舞台竞演节目《2060》,在每周五晚间时段播出。截至目前,《2060》已播出五期节目,CSM63城平均收视2.34%、收视份额11.57%。《2060》自开播以来,凭借新颖的节目模式以及弘扬中国传统文化的内核,获得了业内外各方的关注和肯定。文章还着重表扬了《2060》节目用好国风元素弘扬优秀传统文化,并采用年轻化表达贴近青少年喜好。

  • 新宝骏十年磨剑苦工一朝转型成功(新宝骏形象店什么样)

    在服务方面,新宝骏将会提供全生命周期的实施在线服务,通过APP实现从预约到服务完结的全面在线化。不仅如此,新宝骏还将提升服务水平,将会对到店的每一位消费者提供6对1的专属服务,包括店长、销售顾问、服务顾问、技术主管、保险专员和客服专员,给用户提供实时在线响应,为用户日常用车进行保驾护航。而且,新宝骏提供了在线预约和上门取车保养的服务,让您可以足不出户完成车辆保养。

  • 贵州赤水丹霞大瀑布美景迷人(赤水大瀑布难得一见的)

    在贵州赤水丹霞旅游区大瀑布景区,壮美的大瀑布气势恢宏。据了解,按照疫情防控要求,游客在进入景区时需要进行扫码、测温。景区还采取了门票线上预约、错峰游览等措施。此外,为应对假期客流,当地加强了车辆运力调控、增加工作人员值守,优化客流引导。