问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

汇编语言编写一个“时钟的常驻内存程序”。

发布网友 发布时间:2022-05-08 03:12

我来回答

1个回答

热心网友 时间:2023-07-31 03:45

masm5.0编译,windows98或dos可以正常显示

;tsr例程
;功能:每按下ctrl键显示
;surported by campuslichen@yeah.net
;07/11/29

lmcmosr macro colorc,rowc,colc ;宏:获取cmos时间并显示
local lcmosrb,frc,btoa,toasc,nxt
jmp lcmosrb
pshow db ' \ \ : : ',0 ;ascii码存放区
acmos db 9,8,7,4,2,0 ;cmos端口,70h号:入口参数,9:年,8:月,7:日,4:时,2:分,0:秒,71h:出口参数,BCD码
pcmos db 7 p(0) ;

frc:
;;无入口参数________________________
push si
push cx

mov cx,6
mov si,0
frs:
mov al,acmos[si]
out 70h,al ;将al中的参数写入al,格式为 :out 70h,al
in al,71h ;从 71h端口读取出口参数到al
mov pcmos[si],al
inc si
loop frs

pop cx
pop si
ret

btoa: ;bcd码转为ascii码

;;入口:si,di_______________________
mov cx,6
bs:
mov al,ds:[si]
call toasc
mov ds:[di],ah
mov ds:[di+1],al
inc si
inc di
inc di
inc di
loop bs
ret

toasc:
;;_________________________________;btoa的子程序,将al中的bcd码转为两个ascii码,存放在ah,al
;;al
;;ah,al
mov ah,al
shr ah,1
shr ah,1
shr ah,1
shr ah,1
and al,00001111b
add al,30h
add ah,30h
ret

lcmosrb: ;================================= 读取cmos主程序
push cs
pop ds

ifb <colorc> ;=================处理宏参数
mov bl,0eh
else
mov bl,colorc
endif
ifb <rowc>
mov dh,0
else
mov dh,rowc
endif
if <colc>
mov dl,0
else
mov dl,colc
endif

call frc

mov si,offset pcmos
mov di,offset pshow
call btoa

mov ax,ds
mov es,ax
mov bp,offset pshow
mov cx,18
mov bh,0

mov al,0
mov ah,13h
int 10h
endm

assume cs:code,ds:code
row = 0
column =0
pagen =0
color1 = 0ah
wakek = 1dh ;激活键ctrl扫描码

code segment
dm db ' Hello , this is a TSR program '
dm1 db ' current time:',0dh,0ah
dint9 dd 0

stayr:
in al,60h ;从键盘缓冲区读取一个扫描码
cmp al,wakek ;判断 是ctrl则激活tsr
je nxt1

lover: ;退出,调用原int9中断
jmp dword ptr cs:dint9

nxt1:
push ax
push bx
push dx
push es
push bp

mov ax,cs
mov es,ax
mov bp,offset dm
mov cx,offset dint9 -offset dm
mov bh,pagen
mov bl,color1
mov dh,row
mov dl,column
mov al,0
mov ah,13h
int 10h

lmcmosr 1eh,2,62

pop bp
pop es
pop dx
pop bx
pop ax

jmp lover

;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
start:
mov ax,code
mov ds,ax

mov al,9h
mov ah,35h
int 21h

mov word ptr dint9[0],bx
mov word ptr dint9[2],es

mov dx,offset stayr
mov al,9h
mov ah,25h
int 21h

mov dx,offset start ;计算驻留长度,以节(16字节)为单位,传给入口参数dx
add dx,15
mov cl,4
shr dx,cl
add dx,10h
mov ah,31h ;调用31h号dos功能,驻留并退出
int 21h

code ends
end start

;int9
;al,60h
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 养宠物的人遵守规则,是不是就能和别人平安相处呢? 刻录光盘,要注意什么?常驻内存程序有哪些? 如何将常用软件常驻内存呢? 什么是常驻内存,dos下有哪些常驻内存程序 安卓app如何常驻内存 安卓手机系统 如何设置常驻内存 常驻内存有什么用??java怎么常驻内存?? 请问怎样让我的程序开机启动、并且常驻内存? 如何让一个程序常驻内存里?? 如何用java做常驻内存的程序 常驻内存的程序始终处于工作状态吗? C语言可能写出常驻内存的程序,但是它的代码怎么写呢? 求新高后缩量横盘公式 通达信昨天缩量收阴公式 同花顺持续缩量公式 求高手帮忙编个大智慧缩量公式 通达信突然缩量一倍公式 股票大涨8个点以上后缩量两天的公式 通达信公式:昨天一天缩量选股公式(不区分阳线或阴线,只要缩量就OK) 10日线上方缩量公式 请高手们帮忙写个成交量缩量的公式? 《千古玦尘》景昭和后池同为天后之女,芜浣为何喜欢景昭,却讨厌后池... 《千古玦尘》中,后池并非是芜浣的女儿,为什么她不反驳古君? 《千古玦尘》中,为何芜浣只宠景昭,却不爱后池? 《千古玦尘》中,景昭在最后的时候,为什么要背叛芜浣? 《千古玦尘》古君和芜浣什么关系? 洛河水情查询 丹江水库今日水位查询 岩石岭今天水位多少 数字信号处理问题:“滤波”的准确定义 河北西大洋水库最高水位长到哪个位置 在选用合适的方法设计数字滤波器时,选取原则或依据是什么 空调水库要液位显示吗 数字信号处理中的滤波问题,请高手指点,非常感谢! 水库的平衡水位设计要求 数字信号处理问题——滤波器 水库吊鱼现在吊多少升的水位 在数字信号处理的基本组成中,预滤波和平滑滤波的作用分别是什么? 水库水位是根据什么计算的? 现代数字信号处理 数字信号处理 区别 锦州市商品房公积金贷款流程