交通燈汇编程序设计.doc
文本预览下载声明
;*************定义数据段***********************************************
data segment
title1 db Traffic-System
deng db # # #
sing1 db South-North
sing2 db East - West
sing3 db Red time(scend):
time db Time:
sing4 db Yellow time(scend):
buff db 4 ;键盘缓冲区
buff1 db 3 dup(?) ;工作计数区
buff2 db 3 dup(?) ;数据保存区
yellow db ? ;黄灯时间
mode db Mode:auto(Y/N)?:
ans db ?
ting3 db Red time(scend):030
ting4 db Yellow time(scend):5
;************************主程序段**********************************************
data ends
code segment
assume cs:code,ds:data,es:data
start:mov ax,data
mov ds,ax
mov es,ax
call title2 ;初始化标题
q0: call mode1 ;模式选择 自动或手动
call scanf
call atuo ; 默认设置参数启动
lea si,ans
cmp byte ptr[si],y
jz q1
cmp byte ptr[si],n
jnz q0
call ask1 ;设置红灯时间
call scanf0
call ask2 ;设置黄灯时间
call scanf1
q1: call init1 ; 初始化灯光
call init2
lea si,buff;复制数据buff-buff1,保存显示时间
inc si
inc si
lea di,buff1
cld
mov cx,3
REP movsb
lea si,buff1;复制数据buff1-buff2,保存显示时间
lea di,buff2
cld
mov cx,3
REP movsb
;********************子程序设计**************************************
;*******状态一:南北方向红灯,东西方向绿灯*****************************
start1:lea si,buff2 ;复制数据buff2-buff1,保存显示时间
lea di,buff1
cld
mov cx,3
REP movsb
lea di,buff1
a0: cmp byte ptr[di+2],30h ;数据处理部分
ja a1
add byte ptr[di+2],10
sub byte ptr[di+1],1
a1: sub byte ptr[di+2],1
cmp byte ptr[di+1],30h
jnc a2
add byte ptr[di+1],10
sub byte ptr[di],1
a2: cmp byte ptr[di],30h
jnc a3
jmp start2 ; 换灯
a3: call nr
call write0
call write1
lea si,yellow
mov al,[si]
cmp byte p
显示全部