回 帖 发 新 帖 刷新版面

主题:大虾指教下,下面这个8086汇编程序有什么问题?我找了一晚上。

;程序的功能是以"年/月/日 时:分:秒 "的格式显示当前时间
;8086cpu工作模式
ASSUME    CS:codesg
              codesg SEGMENT
              DB        "// :: "
            s:DB        18 DUP(0)
       start: MOV       AX,CS
              MOV       DS,AX
              MOV       ds,AX
              MOV       SI,OFFSET s
              MOV       DI,0
              MOV       AL,0
              CALL  NEAR PTR    GEtt
              MOV       AL,2
              CALL  NEAR PTR    GEtt
              MOV       AL,4
              CALL  NEAR PTR    GEtt
              MOV       AL,7
              CALL  NEAR PTR    GEtt
              MOV       AL,8
              CALL  NEAR PTR    GEtt
              MOV       AL,9
              CALL  NEAR PTR    GEtt
              MOV       CX,18
              MOV       SI,OFFSET s
              MOV       BX,0b800h
              MOV       ES,BX
              MOV       DI,0
              CLD
              REP       MOVSb
              MOV       AX,4c00h
              INT       21h
                            
        GEtt: OUT       70h,AL
              IN        AL,71h
              MOV       AH,AL
              MOV       CL,4
              SHR       AH,CL
              ADD       AH,30h       
              AND       AL,00001111b
              ADD       AL,30h
              MOV       [SI],AX
              ADD       SI,2
              MOV BYTE PTR      AL,[DI]
              MOV BYTE PTR      [SI],AL
              INC       SI
              INC       DI
              RET
              codesg ENDS
              END       start

回复列表 (共2个回复)

沙发

看别人的程序太累了

我才看了一般就看不动了

我们还是自己动脑筋吧

板凳

进行端口读写在windows下是不允许的
有可能是这个问题,我没仔细看
但是端口读写是不可以的,除非在dos下
你可以用dos系统调用来解决时间读写问题

我来回复

您尚未登录,请登录后再回复。点此登录或注册