谁能描述这个汇编代码是如何工作的?

时间:2015-04-19 17:06:53

标签: assembly

CODE SEGMENT
ASSUMECS:CODE, DS:CODE, ES:CODE, SS:CODE
PPIC_C EQU 1FH
PPIC EQU 1DH
PPIB EQU 1BH
PPIA EQU 19H
ORG 1000H
MOV AX, 0
MOV AL, 10000000B
OUT PPIC_C, AL
MOV CX, 50
MOV AL, 11101110B 
L1: OUT PPIB, AL
PUSH CX
MOV CX, 0 
LOOP $ 
POP CX
ROL AL, 1
LOOP L1
HLT
CODE ENDS

2 个答案:

答案 0 :(得分:0)

该代码可能与可编程外设接口8255配合使用。

首先将0x80写入PPI控制寄存器,将端口B配置为输出端口。

然后将AL中的位模式写入端口B 50次,每次都有软件延迟。每次写入端口B后,AL中的数据向左旋转。从最高位7开始的位被旋转到最低位0.因此该值每写入第8次重复。

它实际上做什么,将取决于连接到PPI端口B的内容。

答案 1 :(得分:0)

端口1Bh每次连续写入50次,值略有不同 在写入之间花费一些时间来让外围设备做出反应。

PUSH CX
MOV CX, 0 
LOOP $ 
POP CX

这是一个延迟循环。