问题–写一个汇编程序,确定从端口A减去端口B的内容,并通过将8255与8085微处理器接口,将结果存储在端口C中。
例子 –
算法 –
- 构造控制字寄存器
- 从端口A和端口B输入数据
- 减去端口A和端口B的内容
- 在端口C中显示结果
- 暂停程序
程序 –
MNEMONICS | COMMENTS |
---|---|
MVI A, 92 | A <- 92 |
OUT 83 | Control Register <- A |
IN 81 | A <- Port B |
MOV B, A | B <- A |
IN 80 | A <- Port A |
SUB B | A <- A – B |
OUT 82 | Port C <- A |
RET | Return |
解释 –
- MVI A,92:表示控制寄存器的值为92。
D7=1 I/O mode D6=0 & D5=0 Port A is in mode 0 D4=1 Port A is taking input D3=0 & D0=0 Port C is not taking part D2=0 Port B is in mode 0 D1=1 Port B is taking input
- OUT 83:将A的值放入端口控制寄存器的端口号83H中。
- IN 81:从81H接收输入,它是端口B的端口号。
- MOV B,A:将A寄存器的内容复制到B寄存器。
- IN 80:从80H输入,这是端口A的端口号。
- SUB B:减去A寄存器和B寄存器的内容。
- OUT 82:在81H中显示结果,它是端口C的端口号。
- RET:返回