ゆ、 素颜 .Classic 2021-07-20 20:36 采纳率: 0%
浏览 43

求帮改,想要自定义输入倒计时

img

data segment
s1 db 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH ;0~F
time dw ?
x db 45 ;延迟倒计时时间
y dw 20000 ;延迟输入显示时间
data ends
stack segment para stack
db 64 dup(?)
stack ends
code segment
assume cs:code,ds:data,ss:stack
start:
push ds
mov ax,0
push ax
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax

    mov dx,66h                          ;8255控制器端口地址
    mov al,10000011B               ;方式0,A输出,B输入,C输入
    out dx,al                                ;输出控制字
    mov time,0
    mov bx,offset s1

begin:

    mov dx,62h                         
    in al,dx                                 ;输入
    cmp al,0f0H                        
    jne shuru
    mov dx,64h
    cmp al,0FEh                         ;al与1111 1110H比较,判断PC0(开始)是否工作                     
    jne begin                             ;没工作,跳到begin

k1:
mov dx,64h ;c口
in al,dx ;c口输入
cmp al,0dfh ;al与1111 1101H比较,判断PC1(复位)是否工作
je k2 ;相等,执行复位功能,跳到K2
mov dx,64h ;c口
in al,dx ;c口输入
cmp al,0bfh ;al与1111 1011比较,判断PC2(暂停)是否工作
je k3 ;相等,执行暂停功能,一直输出当前的数,跳到K3
call shuchu ;输出当前数字
dec x ;延时,直到x减到0时继续执行
jnz k1 ;判断x等不等于0
mov x,45 ;time每减次1,都需要延时,重新赋值x=45
dec time ;倒计时
jz k2 ;判断倒计时结没结束
jmp k1
k2:
mov time,0 ;复位就是将time变成0,输出
call shuchu
jmp begin
k3:
call shuchu ;暂停就是一直输出当前数字
mov dx,64h
mov dx,64h ;c口
in al,dx ;c口输入
cmp al,0bfh ;al与1111 1011比较,判断PC2(暂停)工没工作
je k3 ;工作继续执行
jmp k1 ;不工作,回到最开始,继续倒计时

shuru:
mov dx,62h
in al,dx

a:
dec y ;显示输入的延迟
jnz a ;延时结没结束
mov y,20000 ;再赋值
call shuchu ;输出
jmp begin

shuchu proc
mov dx,al
xlat ;xlat查表功能。
mov dx,60h ;a口
out dx,al ;输出a口
call delay ;延迟灯亮

ret
shuchu endp

delay proc near
push bx ;两次循环延时
push cx ;10次0ffh~0
mov bx,10
t0: mov cx,0ffh
t1: loop t1
dec bx
jnz t0
pop cx
pop bx
ret
delay endp

code ends
end start

  • 写回答

1条回答 默认 最新

  • 小黄人软件 博客专家认证 2023-03-03 09:23
    关注
    
    import datetime
    
    def calculate_age(birth_date):
        today = datetime.date.today()
        age = today.year - birth_date.year - ((today.month, today.day) < (birth_date.month, birth_date.day))
        return age
    
    # 输入出生日期
    birth_date = datetime.date(1990, 1, 1)
    
    # 计算年龄并输出结果
    age = calculate_age(birth_date)
    print("您的年龄是:{}岁".format(age))
    
    评论

报告相同问题?

问题事件

  • 创建了问题 7月20日

悬赏问题

  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图