注册 登录
编程论坛 汇编论坛

(求助)8086控制八路竞赛抢答器--(汇编程序出错,求指导)

suqian428 发布于 2012-05-13 17:59, 825 次点击
只有本站会员才能查看附件,请 登录

运行出现两个警告,六个错误。。。。改了很长时间。。。。改不出来,求汇编大神指教。。。。
DATA SEGMENT
TABLE1 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
TABLE2 DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH
BP DB ?
SI DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
       MOV AX,DATA
       MOV DS,AX
       MOV DX,0EEH   ;A,B,C方式0,A,C输出,B输入
       MOV AL,10000011B
       OUT DX,AL
      
       MOV BP,00 ;BP初值设置0
 CC1:  CALL BB1;开始显示0
       MOV DX,0ECH;读取C口低位值
       IN AL,DX
       AND AL,0FH;检查主持人开始抢答键是否按下
       CMP AL,0EH
       JNE CC1;没按下,跳到cc1,继续显示0
       MOV CX,0FFH
       MOV BP,1EH
   CC2: CALL BB1;按下,开始显示1秒钟30
       LOOP CC2
       DEC BP;变量减一
       JS CC4
       MOV DX,0EAH;读取b口值,看是否有人抢答
       IN AL,DX
       CMP AL,0FFH
       JE CC2;没人抢,跳到cc2
     CC3:  MOV SI,07H
      
NEXT-TRY:IN AL,DX
       CMP AL,TABLE2[SI];检查键值
       JE DONE
       DEC SI
       JMP NEXT-TRY
DONE:  MOV DX,0ECH;显示键值
       MOV AL,0E0H
       OUT DX,AL
       LEA BX,TABLE1
       MOV AX,SI
       XLAT
       MOV DX,0E8H
       OUT DX,AL
       CALL DELAY
       CALL BB1
       MOV DX,0ECH
       IN AL,DX
       AND AL,0FH
       CMP AL,0CH
       JNE DONE
    CC4:MOV BP,0
      CALL BB1
      JMP CC4
 BB1 PROC  NEAR     
       MOV AX,BP
       MOV DL,0AH
       DIV DL
       MOV BX,OFFSET TABLE1
       XLAT
       MOV DX,0E8H
       OUT DX,AL
       MOV AL,0B0H ;第三位显示
       MOV DX,0ECH;C口高位
       OUT DX,AL
       CALL DELAY
       MOV AL,AH
       XLAT
       MOV DX,0E8H
       OUT DX,AL
       MOV AL,70H ;第四位显
       MOV DX,0ECH;C口高位
       OUT DX,AL
       CALL DELAY
       RET
BB1    ENDP
 DELAY PROC NEAR
    MOV CX,00FAH
T1: LOOP T1  
    RET
DELAY ENDP
CODE ENDS
      END START
14 回复
#2
suqian4282012-05-13 18:00
求指教。。。。。。
#3
suqian4282012-05-13 18:06
只有本站会员才能查看附件,请 登录
运行过程的错误
#4
zklhp2012-05-13 18:35
首先

BP DB ?
SI DB ?

这里和寄存器重名了

那后面的那些 到底是寄存器呢 还是什么呢。。

你搞明白了这个再说其他的罢
#5
zklhp2012-05-13 18:37
NEXT-TRY:IN AL,DX

还有这个 要么用下划线 NEXT_TRY 要么不用 貌似用-不行。。
#6
zklhp2012-05-13 18:38
虽然只有5分 我还是提醒一下 记得要结题哦
#7
于祥2012-05-13 22:39
MOV CX,00FAH
 T1: LOOP T1  
这延时也太短了吧?
#8
于祥2012-05-13 22:52
BP,SI不能作为变量名,那是关键字,换一个
#9
suqian4282012-05-14 18:43
回复 6楼 zklhp
大神你还在么?我就是一个刚学汇编的小罗罗,程序我是从网上找的,程序我还是看的不太明白,改过了还是不可以用。。。。我也不知道哪一个BP,SI是寄存器还是自己定义的变量名。。。。求大神帮忙帮到底呀。。。。我proteus图已经画好经过验证没问题的,就是exe程序没法用,如果方便的话,给个邮箱,我发给你,你帮忙修改一下。。。。。在下感激不尽呐。。。。积分我可以倾囊而出。。。。谢谢
#10
zklhp2012-05-14 19:08
自己的事情自己做。。
#11
suqian4282012-05-14 19:13
为什么为什么
#12
zklhp2012-05-14 19:18
我为啥要【帮到底】呢?

如果你需要一站式服务 建议去相应网站有偿求助 说白了 给rmb肯定有人帮你写

需要我帮你转到程序供求去么。。


[ 本帖最后由 zklhp 于 2012-5-14 19:19 编辑 ]
#13
佳嘉2012-05-14 22:59
回复 12楼 zklhp
你太厉害了,你是我学习的榜样!
#14
zklhp2012-05-15 10:44
以下是引用佳嘉在2012-5-14 22:59:44的发言:

你太厉害了,你是我学习的榜样!

嘿嘿 多谢夸奖
#15
于祥2012-05-15 22:02
1
1