首页 > 其他分享 >基于中断的字符串动态显示

基于中断的字符串动态显示

时间:2023-03-28 21:13:50浏览次数:35  
标签:动态显示 INT MOV 中断 字符串 AX 1CH DS

1:利用1CH中断,每隔一定时间间隔,在屏幕上打印一行自定义的字符串,按下键盘任意键后程序自动退出。

2:利用系统定时源设计计时器,具体内容:利用日时钟1CH中断设计定时中断程序,每隔一秒刷新屏幕上显示的时、分、秒。(提示:最终屏幕中的打印形式为24小时制形式:HH:MM:SS,每秒钟进行刷新一次,可采用INT 21H打印字符串的子功能,每秒进行重新打印即可实现覆盖刷新。同时要注意时间显示格式要采用24小时制的时、分、秒的更新。)

                .486

        DATA  SEGMENT     USE16

        MESG  DB     'Bxxxxxxxxx', 0AH,0DH, '$'  ;0AH对应这换行符

       OLD1C  DD     ?

      ICOUNT  DB     18                    ;中断计数初值

        DATA  ENDS

        CODE  SEGMENT    USE16

              ASSUME    CS: CODE, DS: DATA

        BEG:  MOV    AX, DATA

              MOV     DS, AX

              CLI                        ;关中断

              CALL    READ1C

              CALL    WRITE1C

              STI                         ;开中断

 

       SCAN:  MOV   AH, 01H               ;INT 16H的01H功能,查看键盘缓冲区,当有按键输入时,Z=0.

              INT 16H

              JZ    SCAN              ;当键盘没有输入,SCAN一直循环

              CALL    RESET

              MOV     AH, 4CH

              INT 21H

              ;---------------------------------

     SERVICE  PROC

              PUSHA                    ;保护现场

              PUSH    DS

              MOV     AX, DATA             ;将DATA数据段基地址放到DS里

              MOV     DS, AX

              DEC      ICOUNT              ;中断计数

              JNZ EXIT                  ;不满18次调用时转到EXIT

              MOV     ICOUNT, 18            ;计满18次后,将计数器值复位

              MOV     AH, 9            ;显示字符串

              LEA DX, MESG            ;将MESG的偏移地址放到DX中

              INT 21H

       EXIT:  POP DS                    ;恢复现场

              POPA

              IRET                       ;返回系统8型中断服务程序

     SERVICE  ENDP

              ;----------------------------------

      READ1C  PROC     

              MOV     AH, 35H               ;使用INT21H的35H子功能,读出指定n型向量

              MOV     AL, 1CH

              INT 21H

              MOV     WORD PTR OLD1C, BX    ;原1CH的中断向量偏移地址读到BX

              MOV     WORD PTR OLD1C+2, ES ;原1CH的中断向量基地址躲到ES

              RET

      READ1C  ENDP     

              ;---------------------------------

     WRITE1C  PROC

              PUSH    DS              ;将DS寄存器的内容压入堆栈保存

              ;MOV AX,CODE  

              MOV     AX, SEG SERVICE     ;将服务子程序所在代码段的基地址写入DS

              MOV     DS, AX

              MOV     DX, OFFSET SERVICE ;将服务子程序入口的偏移地址写入DX

              MOV     AH, 25H               ;使用INT21H的25H子功能,写入指定n型向量

              MOV     AL, 1CH

              INT 21H

              POP DS                    ;将DS寄存器的内容从堆栈弹出恢复

              RET

     WRITE1C  ENDP

              ;---------------------------------

       RESET  PROC                     ;恢复系统1CH型中断向量

              MOV     DX, WORD PTR OLD1C

              MOV     DS, WORD PTR OLD1C+2

              MOV     AH, 25H

              MOV     AL, 1CH

              INT 21H

              RET

       RESET  ENDP

 

        CODE  ENDS

              END      BEG

 

标签:动态显示,INT,MOV,中断,字符串,AX,1CH,DS
From: https://www.cnblogs.com/XuanXiuJie/p/17266685.html

相关文章

  • 实验2 字符串和列表
    实验任务1task1实验源码1#字符串的基础操作2#课堂上没有演示的一些方法34x='nbaFIFA'5print(x.upper())6print(x.lower())7print(x.swapcase()......
  • 实验2 字符串和列表
    实验任务1#task1:字符串的基础操作(课堂上没有演示的一些方法)实验内容x='nbaFIFA'print(x.upper())#字符串......
  • 字符串和列表
    x='nbaFIFA'print(x.upper())print(x.lower())print(x.swapcase())print()x='abc'print(x.center(10,'*'))print(x.ljust(10,'*'))print(x.rjust(10,'*'......
  • 微信小程序 正则字符串转为正则对象
    场景:服务器返回的一个正则表达式是一个字符串类型的,直接拿去配置正则是不可以的,需要转为正则对象,然后去验证,网页可以使用evel()对象,但是微信小程序就不行,方......
  • 第七篇 基本包装类型-字符串类型 - String、Number、Boolean
    基本包装类型基本包装类型是特殊的引用类型ECMAScript提供了三种基本包装类型NumberStringBoolean每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装......
  • WebForm之企业微信开发(2)——准备Sha1签名算法,随机字符串及时间戳
    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Security.Cryptography;usingSystem.Text;usingSystem.Web;///<summary>///Sha1He......
  • 实验二 字符串和列表
    任务一:x='nbaFIFA'print(x.upper())print(x.lower())print(x.swapcase())print()x='abc'print(x.center(10,'*'))print(x.ljust(10,'*'))print(x.rjust(1......
  • 字符串内置的函数
      a='studesnt'print(a.capitalize())print(a.count('s'))#字符串的位置查找返回的下标中,字符串的第一个字符的下标定义为0.print(a.find('n'))print(a.find('o'))p......
  • JSON对象与JSON字符串
    一、JSON对象有时候在做项目的时候时常将这两个概念弄混淆,尤其是在使用springmvc的时候,后台@RequestBody接受的是一个json格式的字符串,一定是一个字符串。先介绍一下js......
  • 字符串的常用操作
    这是字符串的常用操作汇总  下面是字符串的特点......