汇编语言中的 IN 和OUT 指令是什么功能?
汇编语言中,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
IN指令的意思是从端口中读取数据,比如 IN AL,80H,将80H端口数据读入到AL中
OUT指令的意思是往端口输出数据,比如 OUT 80H,AL,将AL输出到80H端口
你用的什么单片机,一般没有这两个指令。你可能需要看下你用的芯片的DATASHEET。最好把程序贴出来看看。
再欢胆舒: 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为什么错呢?