+ -
当前位置:首页 → 问答吧 → 十万火急!明天交代码解说,望高手逐句解说下代码(交通灯)

十万火急!明天交代码解说,望高手逐句解说下代码(交通灯)

时间:2010-12-16

来源:互联网

L8255_CMD EQU 2A3H
L8255_PA EQU 2A0H
L8255_PB EQU 2A1H
L8255_PC EQU 2A2H
CODE SEGMENT
  ASSUME CS:CODE,DS:CODE
BEGIN:  
  MOV CX,0FFH
AA: LOOP AA
  MOV DX,L8255_CMD
  MOV AL,9CH ;10011000,0方式,PA输入,PB输出
  OUT DX,AL
BB:
  MOV DX,L8255_PA
  IN AL,DX
  MOV DX,L8255_PB
  OUT DX,AL
;MOV AH,00H
;INT 16H
;JZ BB
  JMP BB
MOV AX,4C00H
INT 21H
CODE ENDS
  END BEGIN

作者: zhangcong002   发布时间: 2010-12-16

我还没学到这里

作者: HNYY1989   发布时间: 2010-12-17

L8255_CMD EQU 2A3H 赋值定义数据
L8255_PA EQU 2A0H 
L8255_PB EQU 2A1H
L8255_PC EQU 2A2H
CODE SEGMENT 伪代码分配空间
  ASSUME CS:CODE,DS:CODE
BEGIN:  
  MOV CX,0FFH 循环次数
AA: LOOP AA 用来延时
  MOV DX,L8255_CMD 送端口
  MOV AL,9CH ;10011000,0方式,PA输入,PB输出 自定义信号方式
  OUT DX,AL 输出你定义的(9ch)信号到端口
BB:
  MOV DX,L8255_PA  
  IN AL,DX 输入信号到端口
  MOV DX,L8255_PB
  OUT DX,AL 输出信号到端口
;MOV AH,00H
;INT 16H
;JZ BB
  JMP BB
MOV AX,4C00H 退出程序
INT 21H
CODE ENDS
  END BEGIN
程序不完整,只能这样解释了

作者: zhuyi108   发布时间: 2010-12-17

为什么这么写,我也不是很清楚,只是写了下每句话的意思.

L8255_CMD EQU 2A3H ;CMD口地址
L8255_PA EQU 2A0H ;PA口地址
L8255_PB EQU 2A1H ;PB口地址
L8255_PC EQU 2A2H ;PC口地址
CODE SEGMENT
  ASSUME CS:CODE,DS:CODE
BEGIN:  
  MOV CX,0FFH ;软件延时
AA: LOOP AA ;空循环CX从0FFH->0
  MOV DX,L8255_CMD ;2A3超过8为送DX
  MOV AL,9CH ;10011000,0方式,PA输入,PB输出
  OUT DX,AL ;输出命令字AL到CMD口
BB:
  MOV DX,L8255_PA  
  IN AL,DX ;从PA口读取8位数据到AL
  MOV DX,L8255_PB
  OUT DX,AL ;把读入的8位数据写回PB口
;MOV AH,00H
;INT 16H
;JZ BB
  JMP BB ;重复BB操作
MOV AX,4C00H ;返回DOS
INT 21H
CODE ENDS
  END BEGIN

作者: va_zaixuexi   发布时间: 2010-12-17