3168|1

3

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

在本程序中怎么样设置程序运行起点为100H。 [复制链接]

系统时间显示

 

 

CURSOR  EQU    45H     

ATTRIB   EQU    2FH

CODE    SEGMENT

    ASSUME CS:CODE,DS:CODE

START:     JMP     GO

OLDCUR  DW      ?

OLD1C   DW      2 DUP(?)

NEWINT1C:

      PUSHF

   CALL DWORD PTR CS:OLD1C

PUSH    AX

PUSH    BX

PUSH    CX

PUSH    DX     

XOR     BH,BH

MOV     AH,3         ;读光标位置     

INT     10H          ;显示器驱动程序     

MOV     CS:OLDCUR,DX     

MOV     AH,2         ;设置光标位置

XOR     BH,BH      

MOV     DX,CURSOR ; 自定义CURAOR光标位置给DX,即第00行,第69列(45H)   

INT      10H        ;显示器驱动程序

MOV     AH,2        ;读CMOS时钟,即系统时钟CH=小时,CL=分,DH=秒(都为BCD数)     

INT      1AH        ;时钟驱动程序                  

PUSH    DX      

PUSH    CX         ;将CX小时寄存器给BX,CX备用

POP     BX         ;CX-->BX

PUSH     BX         ;保护BX  

 CALL     SHOWBYTE   ;调用显示时间数字的子程序      

 CALL    SHOWCOLON  ;调用显示":"的子程序入口参数AL                               

POP     BX

XCHG    BH,BL       ;交换BH BL为的是显示分      

      CALL     SHOWBYTE                                     

      CALL    SHOWCOLON

POP     BX          ;把DX给BX,现在开始显示秒

    CALL   SHOWBYTE     ;调用显示时间数字的子程序       

    MOV   DX,CS:OLDCUR  ;调用光标的地址

    MOV   AH,02H      ;10号功能AH=2是设置光标位置

    XOR    BH,BH        ;BH清0,为图形方式

    INT    10H          ;10号功能调用

    POP     DX                                   

    POP     CX             

    POP     BX

    POP      AX

    IRET

SHOWBYTE PROC NEAR            ;显示时间数字子程序入口参数BH

     PUSH    BX       

     MOV    CL,04H

     MOV    AL,BH       ;先将小时的十位给AL,比如12点,这个是转变1的

     SHR    AL,CL          ;将小时的数转化为ASCII码

     ADD    AL,30H

     CALL    SHOW          ;调用显示子程序

     CALL   CURMOVE      ;移动光标

    POP     BX            ;再将小时的个位给AL,比如12点,这个是转变2

    MOV    AL,BH

    AND    AL,0FH

    ADD    AL,30H

   CALL    SHOW         ;调用显示子程序

   CALL    CURMOVE      ;调用移动光标子程序              

   RET

SHOWBYTE ENDP

SHOWCOLON PROC NEAR         ;显示时间中的":"

      MOV    AL,':'

      CALL    SHOW                  

     CALL    CURMOVE

   RET      

SHOWCOLON ENDP

CURMOVE PROC NEAR    ;移动光标子程序,就好像在DOS中,按空格,光标后移一个 位置

        PUSH    AX

    PUSH    BX

    PUSH    CX

    PUSH    DX

    MOV     AH,3         ;读光标位置

    MOV     BH,0       ;BH为显示页号BH=0是图形方式

    INT      10H         ;10H号功能是显示器驱动程序                

 

  

    INC      DL          ;DH,DL=行,列值

    MOV     AH,2        ;设置光标位置

    INT      10H

    POP      DX

    POP     CX

    POP     BX

    POP     AX

    RET    

CURMOVE ENDP

SHOW    PROC NEAR     ;这个子程序功能是在显示器上显示数字

    PUSH     AX                                         

    PUSH     BX

    PUSH     CX

    MOV     AH,09H     ;在当前光标处写字符的代码和属性             

    MOV     BX,ATTRIB    ;BH=00显示页号,BL=2F欲写字符的属性

    MOV     CX,1         ;字符计数  

    INT     10H

    POP     CX

    POP     BX

    POP     AX                             

    RET       

SHOW    ENDP    

GO:    PUSH    CS

       POP     DS

       MOV     AX,351CH      ;AH=35H 取中断向量AL=1CH为中断向量号,该中断被INT 8H(即8253/8254计数器)中断调用,每秒执行18.2次  

       INT     21H           ; 中断返回参数ES:BX   

       MOV    OLD1C,BX               

       MOV    BX,ES 

       MOV    OLD1C+2,BX      

       MOV     DX,OFFSET NEWINT1C;中断程序入口地址

       MOV     AX,251CH    ;AH=25H设置中断向量,AL=1CH为中断向量号

       INT     21H

       MOV     DX,OFFSET GO ;常驻内存程序的长度

       SUB     DX,OFFSET START

       MOV     CL,4

SHR     DX,CL

ADD     DX,11H

MOV     AX,3100H    ;AH=31H程序常驻内存

INT      21H

CODE ENDS

END START

 

此帖出自FPGA/CPLD论坛

最新回复

啥意思?没有明白你的问题啊  详情 回复 发表于 2011-6-21 09:00
点赞 关注
 

回复
举报

6892

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

啥意思?没有明白你的问题啊

此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
有奖直播:当AI遇见仿真,会有什么样的电子行业革新之路?
第2场直播:融合热仿真与热测试提升产品可靠性
直播时间:04月17日 14:00 - 15:00

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 3

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表