经典汇编语言教程:例10.16 编写一个驻留程序,它可显示当前时间的秒数。

例10.16 编写一个驻留程序,它可显示当前时间的秒数。

解:
CSEG SEGMENT 'CODE'
ORG100H
start:
JMPinit
INT1CDD ?
SECDW ?
TSR:
PUSHAX
PUSHBX
PUSHCX
PUSHDX
PUSHBP
PUSHDS
PUSHES;保存所用到的寄存器
MOVAX, CS
MOVDS, AX
MOVES, AX;把CS的值赋给DS和ES
MOVAH, 2H
INT1AH;读取当前时间
MOVDL, DH
ANDDH, 0FH
MOVCL, 4
SHRDL, CL
ADDDX, 3030H
MOVSEC, DX;把当前秒数转化成字符串
MOV AH, 13H
MOVAL, 0
MOVBH, 0
MOVBL, 7
MOVCX, 2
MOVDX, 004EH ;指定显示位置为(0,78)
LEABP, SEC
INT10H;在指定位置显示秒数
POPES;恢复所用寄存器的值
POPDS
POPBP
POPDX
POPCX
POPBX
POPAX
JMPCS:INT1C;转向中断1CH原服务程序
init:
CLI
MOVAX, 351CH
INT21H
MOVword ptr INT1C, BX
MOVword ptr INT1C+2, ES
MOVAX, 251CH
LEADX, TSR
INT21H
STI
LEADX, init
ADDDX, 15
MOVCL, 4;把init的偏移量转换成“节数”
SHRDX, CL;每节内有16个字节
MOVAX, 3100H
INT21H
CSEGENDS
END start

经典汇编语言教程·相关目录

第1章 汇编语言的由来,数据类型第2章 CPU资源和存储器
第3章 操作数的寻址方式第4章 标识符和表达式
第5章 微机CPU的指令系统第6章 程序的基本结构
第7章 子程序和库第8章 输入输出和中断
第9章 宏第10章 应用程序设计
第11章 数值运算协处理器第12章 汇编语言和C语言
汇编语言重要附录Windows API函数大全
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号