计算机组成原理lop,计算机组成原理令.doc

计算机组成原理令

PAGE

PAGE 24

8086/8088指令

除串操作指令外,所有指令只允许有一个操作数在存储器中。

1. 传送类指令

(数据传送指令,专用累加器传送指令,标志位传送指令,地址传送指令)

(一) 数据传送指令

(1) MOV数据传送指令

指令格式:MOV DST,SRC;

操作数可以是字节、字,源、目的操作数位数必须一致且不能同时在存储器中。

源操作数:可在通用R、段R、存储器中、或为立即数。

目的操作数:不能为立即数。

目的地址是段R名时,源操作数不能是立即数(立即数不能直接传给段R)段R间不能直接传送数据。

例 1:立即数送R或存储单元

MOV AH,2AH; 字节传送;

MOV CX,1234H; 字传送;

MOV DA_BYTE, 02FH; 字节传送;

MOV DA_WORD,1020H; 字传送;

例 2: 寄存器之间传送 MOV AL, BL; MOV ES, AX;

例 3:R 与 M 之间传送。 MOV AL, DB_BYTE

例 4: 把DA_BYTE1字节单元内容传送到DA_BYTE2字节单元中。

MOV AH, DA_BYTE1

MOV DA_BYTE2, AH

例 5: 把立即数1020H传送给DS ,ES。

MOV AX , 1020H

MOV DS , AX

MOV ES , AX

(2)XCHG交换指令

XCHG DST, SRC

(SRC DST) 将源地址的内容与目的地址内容相互交换。

交换数据可为字、字节,只能在通用R之间或R 与M 之间进行。不能使用段R、立即数。

例、数据段中定义了两个字变量VAR1和VAR2,(VAR1)= 1234H,(VAR2)= 5678H;

将这两个字单元内容互换。

MOV AX,VAR1 XCHG VAR2,AX MOV VAR1,AX(或:XCHG VAR1,AX)

(3)PUSH进栈指令格式:PUSH SRC

<1> 8086的堆栈由SS指定的一段存储器( £ 64KB)构成。

自下向上生成的堆栈。 SP初始化:堆栈段长(MAX:FFFFH)

SP初始值指向:(SS)*16 + 段长;(即:栈底+2单元

<2> 8086/8088堆栈规定:以字(2个字节)为单位进行存取。

低地址存放字的低字节单元的内容; 高地址存放字的高字节单元的内容。

<3> 堆栈操作:

设置堆栈:对堆栈段R(SS)及堆栈指针(SP)赋初值。编程设置堆栈段。

(4)POP出栈指令格式:POP DST

(5)、IN(input)输入指令

1、直接I/O端口寻址方式:

IN AL,pn (字节) IN AX,pn (字)

指令功能:AL/AX ←(pn);其中:pn表示I/O端口地址(或称作:I/O端口号)。

2、间接I/O端口寻址方式:

IN AL,DX (字节) IN AX,DX (字)

指令功能:AL/AX ←(DX);其中:DX中的内容为I/O端口地址。

例、把I/O端口379H的字节内容传送到主存数据段的VARBYTE字节单元中。

MOV DX,379H

IN AL,DX

MOV VARBYTE,AL

(6)OUT(output)输出指令

1、直接I/O端口寻址方式:

OUT pn,AL (字节) OUT pn,AX (字)

指令功能:pn ←(AL/AX);其中:pn表示I/O端口地址(或称作:I/O端口号)。

2、间接I/O端口寻址方式:

OUT DX,AL (字节) OUT DX,AX (字)

指令功能:DX ←(AL/AX);其中:DX中的内容为I/O端口地址。

例、 把主存数据段的VARBYTE字节单元中的内容传送到I/O端口230H中。

MOV DX,230H

MOV AL,VARBYTE

OUT DX,AL

(7)XLAT(translate)换码指令

指令格式:XLAT [TABADDR]

指令功能:AL ←((BX)+(AL))

其中: [TABADDR]中的方括号表示本项内容可以省略,TABADDR表示换码表首地址的符号地址。BX的内容为换码表的首地址在数据段中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值