用汇编语言编写一个延时1S的子程序

延时1S的子程序的入口地址为delay1s,在线等!!!速度... 延时1S的子程序的入口地址为delay1s,在线等!!!速度 展开
 我来答
汤旺河边
推荐于2017-09-10 · TA获得超过2.9万个赞
知道大有可为答主
回答量:2675
采纳率:0%
帮助的人:3041万
展开全部
; 本程序通过编译,运行正确
Code Segment
Assume CS:Code,DS:Code
; -----------------------------------------
; Subroutine 延时指定的时钟嘀嗒数
; 入口:
; Didas=时钟嘀嗒数(1秒钟约嘀嗒18.2次,10秒钟嘀嗒182次。若延时不是秒的10数次倍,误差稍微大点)
Delay1S Proc Near
push dx
push cx
xor ax,ax
int 1ah
mov Times,dx
mov Times[2],cx
Read_Time: xor ax,ax
int 1ah
sub dx,Times
sbb cx,Times[2]
cmp dx,Didas
jb Read_Time
pop cx
pop dx
ret
Times dw 0,0
Delay1S EndP
; -----------------------------------------
Didas equ 18
Start: call Delay1S
Exit_Proc: mov ah,4ch ;结束程序
int 21h
Code ENDS
END Start ;编译到此结束
百度网友b04b15b3b
2009-06-12 · TA获得超过1360个赞
知道小有建树答主
回答量:894
采纳率:0%
帮助的人:721万
展开全部
是51的汇编么?晶振频率是12MHz的,定时器是1ms,循环1000为1s,使用是查询方式,需要中断方式可以再帮你写,不知道你要是1S精度要求高不高,我没有去精确计算,这个不是非常高!!
delay1s:
mov r1,#1000
del_3:
mov th0,#0FCH
mov tl0,#18H
setb tr0
del_1:
jbc tf0 del_2
jmp del_1
del_2:
djnz r1 del_3
ret
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式