寻址方式

IP寻址方式二

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-06 01:02:34
3、直接寻址方式:   操作数在寄存器中,指令直接包含有操作数的有效地址(偏移地址)   注:操作数一般存放在数据段   所以操作数的地址由DS加上指令中直接给出的16位偏移得到。如果采用   段超越前缀,则操作数也可含在数据段外的其他段中。   例如:   MOV AX,[8054]   如(DS) = 2000H,   则执行结果为(AX) = 3050H   (物理地址=20000+8054=28054H)   28054H里的内容为3050H   在汇编语言指令中,可以用符号地址代替数值地址   如:MOV AX,VALUE   此时VALUE为存放操作数单元的符号地址。   如写成:MOV AX,[VALUE]也是可以的,两者是等效的。   如VALUE在附加段中,则应指定段超越前缀如下:   MOV AX,ES:VALUE 或 MOV AX,ES:[VALUE]   4、寄存器间接寻址方式:   操作数在寄存器中,操作数有效地址在SI、DI、BX、BP   这四个寄存器之一中。在一般情况下,如果有效地址在   SI、DI和BX中,则以DS段寄存器中的内容为段值。如果   有效地址在BP中,则以SS段寄存器中的内容为段值   例如:   MOV AX,[SI]   如果(DS) = 5000H (SI) = 1234H   则物理地址 = 50000 + 1234 =

IP寻址方式三

怎甘沉沦 提交于 2019-12-06 01:02:30
5、寄存器相对寻址方式:   操作数在存储器中,操作数的有效地址是一个基址寄存器(BX、BP)   或变址寄存器(SI、DI)的内容加上指令中给定的8位或16位位移量之和   BX 8位 位移量   EA(有效地址) = BP +   SI 16位 位移量   DI   在一般情况下,如果SI、DI、或BX中的内容作为有效地址的一部分,那么   引用的段寄存器是DS;如果BP中的内容作为有效地址的一部分,那么引用的   段寄存器是SS。   物理地址 = 16d × (DS) + (BX) + 8   或(SI)或16位位移量   或(DI)   物理地址 = 16d × (SS) + (BP) + 8位位移量   或16位位移量   在指令中给定的8位或16位位移量采用补码形式表示。在计算有效地址时,如   位移量是8位,则被带符号扩展成16位。   例如:   MOV AX,[DI+1223H]   假设,(DS) = 5000H,(DI) = 3678H   则物理地址 = 50000 + 3678 + 1233 = 5489BH   5489BH地址中的内容:55AAH   执行该指令后AX = 55AAH   下面指令中,源操作数采用寄存器相对寻址,引用的段寄存器是SS: MOV BX,[BP-4]   下面指令中,目的操作数采用寄存器相对寻址,引用的段寄存器是ES:

IP寻址方式四

南楼画角 提交于 2019-12-06 01:02:24
6、基址加变址寻址方式:   操作数在寄存器中,操作数的有效地址由:   基址寄存器之一的内容与变址寄存器之一的内容相加   BX SI   即: EA = +   BP DI   在一般情况下,如果BP之内容作为有效地址的一部分,则以SS之内容为段值,否则已DS   为段值。   例如:   MOV AX,[BX][DI]   如:(DS)=2100H,   (BX)=0158H,   (DI)=10A5H   则EA=0158 + 10A5 = 11FD   物理地址=21000 + 11FD = 221FDH   221FDH地址中的内容:1234H   执行该指令后AX = 1234H   下面指令中,目的操作数采用基址加变址寻址,   引用的段寄存器是DS: MOV DS:[BP+SI],AL   下面指令中,源操作数采用基址加变址寻址,   引用的段寄存器ES: MOV AX,ES:[BX+SI]   这种寻址方式使用与数组或表格处理。用基址寄存器存放数组首地址,而用变地寄存器   来定位数组中的各元素,或反之。由于两个寄存器都可改变,所以能更加灵活地访问数   组或表格中的元素。   下面的两种表示方法是等价的:   MOV AX,[BX+DI]   MOV AX,[DI][BX]   7、相对基址加变址寻址方式:   操作数在存储器中

寻址方式在结构化数据访问的应用

不问归期 提交于 2019-12-05 19:33:53
实验7:将data段中的数据按照格式和人均总收入存入table中 assume cs:codesg codesg segment db '1975','1976','1977','1978','1979','1980','1981','1982','1983' db '1984','1985','1986','1987','1988','1989','1990','1991','1992' db '1993','1994','1995' ;21年的年份 dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514 dd 345890,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000 ;21年公司总收入 dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226 dw 11542,14430,15257,17800 ;21年公司人数 codesg ends table segment db 21 dup ('year summ ne ?? ') ;21个存储信息的结构 table ends code segment start: mov ax,codesg mov

【计算机系统结构】第2章 计算机指令集结构设计问答题

匿名 (未验证) 提交于 2019-12-03 00:27:02
1. 通常可按哪5个因素对计算机指令集结构进行分类? (1) 在CPU中操作数的存储方法。 (2) 指令中显式表示的操作数个数。 (3) 操作数的寻址方式。 (4) 指令集所提供的操作类型。 (5) 操作数的类型和大小。 2. 在对计算机指令集结构进行分类的5个因素中,哪一种是各种指令集结构之间最主要的区别? CPU中操作数的存储方法,即在CPU中用来存储操作数的存储单元的类型,是各种指令集结构之间最主要的区别。 3. 根据CPU内部存储单元类型,可将指令集结构分为哪几类? 堆栈型指令集结构、累加器型指令集结构、通用寄存器型指令集结构。 4. 堆栈型指令集结构、累加器型指令集结构和通用寄存器型指令集结构分别有什么优缺点? 指令集结构类型 优点 缺点 堆栈型 是一种表示计算的简单模型;指令短小 不能随机访问堆栈,从而很难生成有效代码。同时,由于堆栈是瓶颈,所以很难被高效地实现 累加器型 减少了机器的内部状态;指令短小 由于累加器是唯一的暂存器,这种机器的存储器通信开销最大 寄存器型 易于生成高效的目标代码 所有操作数均需命名,且要显式表示,因而指令比较长 5. 现代 大多数机器均采用通用寄存器型指令集结构,为什么? 主要有两个方面的原因,一是寄存器和CPU内部其他存储单元一样,要比存储器快;其次是对编译器而言,可以更加容易、有效地分配和使用寄存器。 6.

计算机硬件基础知识

◇◆丶佛笑我妖孽 提交于 2019-12-03 00:02:02
2.1 计算机硬件基础知识   2.1.1 计算机系统的组成、体系结构分类及特性       CPU和存储器的组成、性能和基本工作原理     CISC/RISC,流水线操作,多处理机,并行处理     常用 I/O 设备、通信设备的性能以及基本工作原理     I/O 接口的功能、类型和特性     I/O控制方式(中断系统、DMA、I/O处理机方式)   2.1.2 存储系统     虚拟存储器基本工作原理,多级存储体系     RAID 类型和特性   2.1.3 可靠性与系统性能评测基础知识     诊断与容错     系统可靠性分析评价     计算机系统性能评测方法      计算机体系结构分类 :     从 宏观 上按 处理机数量 进行分类,分为单处理系统、并行处理与多处理系统和分布式处理系统。     从 微观 上按 并行程度 分类:最为常见分类方式有:Flynn分类法与冯氏分类法。考试中主要考察的是Flynn分类法。        Flynn分类法 是根据指令流、数据流和多倍性三方面来进行分类的:                计算机硬件组成 :     计算机硬件系统是依照冯·诺依曼所设计体系结构,即包括 运算器 、 控制器 、 存储器 、 输入设备 和 输出设备 五大部件组成。     运算器和控制器组成中央处理器(CPU)      运算器 负责完成算术

8086的7种寻址方式

99封情书 提交于 2019-12-02 12:15:13
七种寻址方式: 1. 立即寻址: 操作数包含在指令中,是指令的一部分。此时的操作数称为立即数 MOV EAX, 1234H 2. 寄存器寻址: 操作数在CPU寄存器中,指令中指定寄存器编号 MOV SI, AX MOV AL, AH 3. 直接寻址: 操作数在存储器中,指令直接包含操作数的有效地址。此时操作数一般存放在数据段DS中,采用换段前缀可以使用其它段寄存器。 MOV AX, [1234H] 4. 寄存器间接寻址: 操作数在存储器中,操作数有效地址在ESI、EDI、EBX、EBP之一种。在不使用换段前缀的情况下, 若有效地址在 SI/DI/BX 中,则以 DS 的值为段值; 若有效地址在 BP 中,则以段寄存器 SS 的值为段值。 MOV AX, [SI] MOV [BP], CX 5. 寄存器相对寻址: 操作数在存储器中,操作数的有效地址是一个基址寄存器(BX、BP)或变址寄存器(SI、DI)内容加上指令中给定的8位或16位位移量之和。即: EA = (BX/BP/SI/DI) + (8/16位位移量) 在不使用换段前缀的情况下,若SI/DI/BX的内容作为有效地址的一部分,则以DS的值为段值;若BP的内容作为有效地址的一部分,则以段寄存器SS的值为段值。 在指令中给定的8位或16位位移量以补码形式表示。在计算有效地址时,若位移量是8位,则将其有符号扩展为16位

9=3 磁盘存储与分区

陌路散爱 提交于 2019-12-01 09:49:53
磁盘存储与分区 设备文件 一切皆文件:open(), read(), write(), close() 设备类型: 块设备:block,存取单位“块”,磁盘 字符设备:char,存取单位“字符”,键盘 设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信 设备号码: 主设备号:major number, 标识设备类型 次设备号:minor number, 标识同一类型下的不同设备 磁盘设备的设备文件命名:/dev/DEV_FILE SCSI, SATA, SAS, IDE,USB: /dev/sd 虚拟磁盘:/dev/vd 、/dev/xvd 不同磁盘标识:a-z,aa,ab… /dev/sda, /dev/sdb, ... 同一设备上的不同分区:1,2, ... /dev/sda1, /dev/sda5 硬盘存储术语 head:磁头 track:磁道 sector:扇区,512bytes cylinder:柱面 并行: IDE:133MB/s SCSI:640MB/s 串口: SATA:6Gbps SAS:6Gbps USB:480MB/s 机械硬盘和固态硬盘 机械硬盘(HDD):Hard Disk Drive,即是传统普通硬盘,主要由:盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成。机械硬盘中所有的盘片都装在一个旋转轴上

2019-2020-1 20175320 《信息安全系统设计基础》第五周学习总结

倾然丶 夕夏残阳落幕 提交于 2019-12-01 07:23:15
2019-2020-1 20175320 《信息安全系统设计基础》第五周学习总结 一、教材学习内容总结 本周我们了解了在计算机系统中程序的机器级表示。通过反汇编器可以将机器码转化为类似汇编代码的格式,而该章节内容的主要介绍了在x86-64中的汇编指令以及汇编指令与c代码之间的转化。虽然同样是汇编,但与我们上学期学习的8086中的汇编语句有着一定的区别,以下是本章节需要注意的内容: objdump命令:通过 objdump -d 文件名+后缀 可以将机器码转化为汇编代码,这是进行分析的重要前提条件。 寄存器的前缀不同,对应的存储长度不同。%r是64位、%e是32位、%是16位及以下的寄存器,在进行算术和逻辑操作时,必须通过前缀选择正确长度的寄存器。 操作数有多种寻址方式,我们需要熟悉各种虚拟地址的寻址方式。 x86-64中的数据传送指令以及各种算术和逻辑操作指令的两个操作数的关系相较于8086是相反的,这是与8086最大的区别。 各种操作指令可以通过后缀来指定数据的位数,或者进行数据长度之间的转换,但操作指令规定的长度一定要与寄存器长度相匹配,比如movq、movabsq、movswl等指令。 在使用mov指令时,不可以两个操作数同为存储器,且立即数不能作为目的地址。 在x86-64中,栈操作指令总是以四字作为出以及入栈的单位。 在移位操作中,左移与右移的效果有所区别