专业做网站公司 前景,即在市场中确立自己的位置,wordpress百度地图插件下载,网站建设 上海网站建设基本概念
立即操作数#xff1a;操作数包含在指令中寄存器操作数#xff1a;操作数包含在CPU的某个内部寄存器中存储器操作数#xff1a;约定操作数事先存放在存储器中存放数据的某个单元基本格式 MOV xx,yy xx#xff1a;目的操作数字段 yy#xff1a;源操作数字段 EA操作数包含在指令中寄存器操作数操作数包含在CPU的某个内部寄存器中存储器操作数约定操作数事先存放在存储器中存放数据的某个单元基本格式 MOV xx,yy xx目的操作数字段 yy源操作数字段
EAEffect Address:有效地址PAPhysical Address物理地址 寻址方式 1、立即数寻址
操作数直接存在指令中紧跟在指令的操作码之后。主要用来对寄存器赋值只能用于源操作数字段。 例如MOV BX,1234H 执行指令后(BX)1234H 注意立即数只能是整数不能是小数、变量或其他类型的数据。
2、寄存器寻址
操作数就在CPU的内部寄存器中 例如MOV DX,AX AX的内容送到DX中 注意当源和目的操作数都采用寄存器寻址时一定要注意类型要一致。
立即数寻址和寄存器寻址都没有有效地址EA
3、直接寻址
操作数在存储器中存储单元的有效地址由指令直接指出操作数本身若无特殊声明使用段超越则默认存放在内存的数据段DS段中 例如MOV AX,[1070H] 若DS2000H该指令的操作数的物理地址为PA 2000H 1070H 21700H则执行过程是将物理地址为21700H和21701H两个单元的内容取出送AX。 4、寄存器间接寻址 操作数在存储器中操作数的有效地址一般在基址寄存器BX、BP或变址寄存器SI、DI中即EA等于其中某一个寄存器的内容。如果指令前面没有用超越前缀指明具体的段寄存器其操作数的段基址可以分为以下两种情况
操作数在当前数据段DS给出段基址 PA 16 * (DS) EA 16 * (DS) [ BX | SI | DI ]操作数在当前堆栈段SS给出段基址 PA 16 * (SS) EA 16 * (DS) (BP) 例如MOV AX,[BX] 若(DS) 2000H,(BX) 1000H ;EA 1000H PA 2000H * 16 1000H 21000H 5、寄存器相对寻址 操作数在存储器中并且一般在指定基址寄存器BX、BP或变址寄存器SI、DI的内容进行间接寻址但是操作数的EA即偏移量还要加上指令中指定的8位或16位位移量EA [ BX | BP | SI | DI ] { 8位或16位位移量 } 例如MOV AL,COUNT[SI] or MOV AL,[COUNT SI] 设(DS) 6000H,(SI) 1000HCOUNT 55H表示位移量的常量符号 EA 1000H 05H 1005H。 PA 6000H * 16 1000H 05H 61500H. 6、基址变址寻址
8086指令系统允许把基址寄存器和变址寄存器组合起来构成一种新的寻址方式
操作数一定存在存储器中操作数的EA是由指令指定的一个基址寄存器BX、BP加上一个变址寄存器SI、DI的内容即 EA [ BX | BP ] [ SI | DI ]只要用上BP那么默认段寄存器就是SS在其他情况默认段寄存器都为DS。也可以用使用段超越前缀来指定段寄存器。 例如MOV AX,[BP][SI] 设(SS) 2000H(SI) 1000H(BP) 5000H EA 1000H 5000H 6000H PA 20000H 5000H 1000H 26000H 7、相对基址变址寻址
操作数的EA是一个基址寄存器内容、一个变址寄存器内容和8位或16位偏移量这三者之和。 与基址变址一样使用基址寄存器BP时默认的段寄存器是SS其他情况默认的段寄存器是DS。EA [ BX | BP ] [ SI | DI ] { 8位或16位位移量 } 例如设(BX) 1000H(SI) 2000S) (DS) 3000H位移量为0020H MOV AX,[BXDI1020H] EA 1000H 2000H 1020H 4020H PA 30000H 4020H 34020H