安徽理工太骨计算机科学与技术系李兆 《汇编语言》第8章 表8.1几个重要的I/0端口地址 端口地址。 端口名称。 端口地址。 端口名称。 020H023H中断屏蔽寄存器3783mFH并行口LPT2 04004H时针/计数器:3Hr3BH单色显示器端口 06OH键盘输入端口。3BOr3BFH并行口LPT 061H扬声器(o,1位)303 CFH VGA/EGA 20020FH游戏控制口。3D0r^3 DFH CGA 278H2H并行口LPr33FOH3F磁盘控制器 2F8Hr2H串行口CO23F8r3FH串行口CoM 2021/22
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第8章 2021/2/2 11
安徽理工太骨计算机科学与技术系李兆 《汇编语言》第8章 计算机在启动时,BoS程序 ( Basic Input/Output Systen将检 地址 端口名称 查计算机系统中有哪些端口地址。当 4000F8c0M1 03 发现有串行端口地址时,BIoS就把 02F81c0M2 该端口存放在以地址40:00H开始的数 02 据区内;当发现有并行端口地址时, 04 00Unused 00 BOS会把它存入以地址40:08H开始 06 Unused 的数据区内。 0 每类端口有4个字的空间,对有二 08□78LPT1 03 个串行口、二个并行口的计算机系统 OA 78LPT2 ,其BIoS程序将得到如图所示的部分 02 数据表。 0c 00 Unused 图中03F8H、02F8H、0378H和0E00 Unused 0278H分别为coM1、coM2 00 LPT和LPT2的端口地址。 2021/22 12
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第8章 2021/2/2 12 计算机在启动时,BIOS程序 (Basic Input/Output System)将检 查计算机系统中有哪些端口地址。当 发现有串行端口地址时,BIOS就把 该端口存放在以地址40:00H开始的数 据区内;当发现有并行端口地址时, BIOS会把它 存入以地址40:08H开始 的数据区内。 每类端口有4个字的空间,对有二 个串行口、二个并行口的计算机系统 ,其BIOS程序将得到如图所示的部分 数据表。 图中03F8H、02F8H、0378H和 0278H分别为COM1、COM2、 LPT1和LPT2的端口地址
安徽理工太骨计算机科学与技术系李兆 《汇编语言》第8章 822I/o指令 O指令: 输入指令:INAL,PORT IN AX. PORT IN AL. DX IN AX. DX 输出指令: OUT PORT,AL OUT PORT.AX OUT DXAL OUT DXAL PORT:端口地址 若地址值≤255,可直接寻址(寻址范围256个端口); 否则需经寄存器DX间接寻址寻址范围64K个端口 2021/22 13
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第8章 2021/2/2 13 • I/O指令: 输入指令: IN AL, PORT IN AX, PORT IN AL, DX IN AX, DX 输出指令: OUT PORT, AL OUT PORT, AX OUT DX, AL OUT DX, AL • PORT: 端口地址 – 若地址值≦255,可直接寻址(寻址范围256个端口); – 否则, 需经寄存器DX间接寻址(寻址范围64K个端口) 8.2.2 I/O指令
安徽理工太骨计算机科学与技术系李兆 《汇编语言》第8章 (1)NAX,28H MOV DATA WORD. AX (2)N AL, 27H TEST AL, 00000100 JNZ ERROR (3)MOV DX, 126 IN AL, DX OR AL, 80H 2021/22 OUT DX, AL
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第8章 2021/2/2 14 (1) IN AX, 28H MOV DATA_WORD, AX (2) IN AL, 27H TEST AL, 00000100 JNZ ERROR (3) MOV DX, 126 IN AL, DX OR AL, 80H OUT DX, AL
安徽理工太骨计算机科学与技术系李兆 《汇编语言》第8章 8255 PB口 喇叭 喇叭驱 简单的O程序举例 动电路 code segment o main proc far trig xor a 2 assume cs:code out 61h. al s: push ds mov cx, bx xor axax delay: loop delay push ax dec dx mov bx 6000: f jne trig mov cx. 1000: times ret mov dx. cx main endp in al. 61h code ends and al. 11111100b end s 2021 15
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第8章 2021/2/2 15 code segment main proc far assume cs:code s: push ds xor ax,ax push ax mov bx,6000;f mov cx,1000;times mov dx,cx in al,61h and al,11111100b trig:xor al,2 out 61h,al mov cx,bx delay:loop delay dec dx jne trig ret main endp code ends end s 简 单 的I/O 程 序 举 例 :SOUND 程 序