汇编语言中的 IN 和OUT 指令是什么功能?

作者&投稿:语郑 (若有异议请与网页底部的电邮联系)
汇编语言中OUT和IN的用法~

  汇编语言中,CPU对外设的操作通过专门的端口读写指令来完成;
  读端口用IN指令,写端口用OUT指令。
  例子如下:
  IN AL,21H;表示从21H端口读取一字节数据到AL
  IN AX,21H;表示从端口地址21H读取1字节数据到AL,从端口地址22H读取1字节到AH
  MOV DX,379H
  IN AL,DX ;从端口379H读取1字节到AL
  OUT 21H,AL;将AL的值写入21H端口
  OUT 21H,AX;将AX的值写入端口地址21H开始的连续两个字节。(port[21H]=AL,port[22h]=AH)
  MOV DX,378H
  OUT DX,AX ;将AH和AL分别写入端口379H和378H

端口是主机与外设进行数据交换的。(外设接口电路有专用于数据交互的寄存器。为了与CPU中的寄存器相区别,称之为“端口”)。端口有数据端口,状态端口和控制端口3种。

PC机给予每一个端口分配了一个地址(称为端口号),形成一个独立于内存空间的I/O地址空间。在8086/8088中,端口地址的范围是0000至FFFF。

CPU对外设的操作通过专门的端口读写指令来完成。读端口用IN指令,写端口用OUT指令。

——————————————————————————————————————————

IN ACC,PORT;从端口PORT读取数据到ACC;

PORT可以是立即数,也可以是DX。

ACC为AL时,从PORT读取1字节数据到AL
ACC为AX时,从PORT读取2字节数据到AX

——————————

OUT PORT,ACC;将ACC的数据写入端口PORT;

——————————

例子:

IN AL,21H;表示从21H端口读取一字节数据到AL

IN AX,21H;表示从端口地址21H读取1字节数据到AL,从端口地址22H读取1字节到AH

MOV DX,379H
IN AL,DX ;从端口379H读取1字节到AL
—————
OUT 21H,AL;将AL的值写入21H端口
OUT 21H,AX;将AX的值写入端口地址21H开始的连续两个字节。(port[21H]=AL,port[22h]=AH)

MOV DX,378H
OUT DX,AX ;将AH和AL分别写入端口379H和378H

在8086系列的汇编语言中
IN指令的意思是从端口中读取数据,比如 IN AL,80H,将80H端口数据读入到AL中
OUT指令的意思是往端口输出数据,比如 OUT 80H,AL,将AL输出到80H端口

你用的什么单片机,一般没有这两个指令。你可能需要看下你用的芯片的DATASHEET。最好把程序贴出来看看。


泸西县15813234954: 汇编中IN指令是什么意思 -
再欢胆舒: OUT 和 IN 在汇编中是端口读写操作指令.端口是主机与外设进行数据交换使用的,分为数据端口,状态端口和控制端口三种 例如: IN AL, 21H 表示从21H端口读一个字节数据到AL;

泸西县15813234954: 汇编语言中的in 和out -
再欢胆舒: in out指的是输入输出,是相对于内存而言的,输入就是将外设的数据读入写到内存中,因此为读操作,输出就是指将内存的数据写到外设中,因此为写操作.

泸西县15813234954: 求汇编语言指令:IN 和OUT的实例???? -
再欢胆舒: 端口是主机与外设进行数据交换的.(外设接口电路有专用于数据交互的寄存器.为了与CPU中的寄存器相区别,称之为“端口”).端口有数据端口,状态端口和控制端口3种.PC机给予每一个端口分配了一个地址(称为端口号),形成一个...

泸西县15813234954: 汇编语言中 OUT DX,AL 指令操作过程是什么? OUT操作码实现的功能是什么? -
再欢胆舒: in和Out都是IO操作指令 , 例如out指令:OUT PortNo/DX, AL/AX 功能为把AL/AX的数据送到IO地址,IO地址如果大于FFH,则地址需要放入DX,要输出字节,默认使用AL寄存器,要输出字,默认使用AX寄存器. 例如:MOV AL,10H //(将字...

泸西县15813234954: 汇编OUT的用法 -
再欢胆舒: OUT端口输出指令,它的格式是 OUT DST,SRC 表示CPU给端口输出数据.DST用于指定端口地址,有两种寻址方式,1,、端口地址为8位地址值表示时,DST可以直接用地址值(port)表示,寻址方式位直接寻址.2,、当端口地址不能用8位地址表示时,DST取DX,即将端口地址放在DX中,通过DX找到端口地址,寻址方式位寄存器间接寻址,当然可以用8位的地址表示端口访问也可以采用寄存器间接寻址方式.SRC智能取AL或者AX寄存器.在此提醒楼主,从这可以看出来并不是寄存器间接寻址方式只能用[SI],[DI],[BP],[BX]的形式.

泸西县15813234954: 输入指令IN输出指令OUT -
再欢胆舒: 1、输入指令IN输出指令OUT都是累加器专用指令. 2、用法: (1)IN AX/AL,I/O端口地址;表示从外部设备输入数据给累加器,如果从外设端口中输入一个字节则给8位累加器AL,若输入一个字则给16位累加器AX. 如 IN AL,80H (2)OUT I/O端口地址,AX/AL;表示将累加器的数据输出给外部设备,如果向外设端口输出一个字节则用8位累加器AL,若输出一个字则用16位累加器AX. 如OUT 81H,AL 说明:当I/O端口地址不超过8位时,则直接放在指令中,若超过8位,则用DX间址.如MOV DX,8080H IN AL,DX

泸西县15813234954: 汇编语言 in out -
再欢胆舒: 是将AL中的内容转到DX的内容对应的地址当中.如MOV DX,22H OUT DX,A 就是AL中的内容送到地址为22H的M中.

泸西县15813234954: 汇编语言中的 IN 和OUT 指令是什么功能? -
再欢胆舒: 你用的什么单片机,一般没有这两个指令.你可能需要看下你用的芯片的DATASHEET. 最好把程序贴出来看看.

泸西县15813234954: 汇编中out命令什么意思,比如OUT DX,AL 这个语句如何解释 -
再欢胆舒: OUT 是输出指令,DX是端口地址,OUT DX,AL 就是将AL的内容输出到DX所指示的端口

泸西县15813234954: 汇编语言 下面指令正确的是() -
再欢胆舒:[选项] A. MOV B. X,AL B IN AX,21H C. OUT 21H,AX D. 260H,AL C,D为什么错呢?

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网