大家别怪我呀,我也是被逼的.

apay2004 2006-06-22 05:21:32
老师布置了汇编的课程设计,没什么人会,所以我将它发到CSDN上了,我知道这里高手很多,请大家不要见怪,会的帮帮忙,不会的捧个人场.进来就给100分.我的程序已经大概写得差不多了,但是还有点小问题,一是:遇到E有时能退出,有时退不出来.还有不能判断是不是闰年,输入数字,得出的结果是一样的.大家帮忙呀.
具体要求:
程序运行后,显示“input:” 然后输入任意四位数字年份,该年份必须显示在屏幕上,以回车键[ENTER]表示输入年份结束。若输入数字字符不足4个或多于4个,程序不予理睬并要求重新输入。然后进入程序判断,若是输入数字年份是闰年则输出一个五角星,若不是则输出一个三角星。将结果显示延时10秒,然后程序自动返回,重新要求输入新的年份数字。
当输入非数字字符时,不予理睬,当在任意位置输入字母“E”时,程序退出。
我写的程序:
datarea segment
msg db 'input:',13,10,'$'
datarea ends
;------------------------------
stack segment stack
db 200 dup(0)
stack ends
program segment
main proc far
assume cs:program,ss:stack,ds:datarea
;8----------------
start:
push ds
sub ax,ax
push ax
mov ax,datarea
mov ds,ax
;15----------------
;以下是显示input:字符
begin:
mov ah,9
mov dx,seg msg
mov ds,dx
mov dx,offset msg
int 21h
;22-----------------
;输入数字并回显,将数字存到bx中
init:
mov cx,0
mov bx,0
numinput:
mov ah,1
int 21h
inc cx
cmp al,0dh
je deal
cmp al,69d
je exit
sub al,30h
jl start
cmp al,9d
jg start
cbw
xchg ax,dx
mov dx,10d
mul dx
xchg ax,bx
add bx,ax
jmp numinput
;44------------------
deal:
cmp cx,5d
jne start
mov ax,bx
mov cx,ax
jmp compute
;49-------------------
;判断是不是闰年
compute:
mov bx,100d
div bx
cmp al,0
je next1
cmp al,0
jne next2
;57-------------------
next1: mov ax,cx
mov bx,400d
div bx
cmp al,0
je yes
cmp al,0
jne no
;64-------------------
next2: mov ax,cx
mov bx,4d
div bx
cmp al,0
je yes
cmp al,0
jne no
;71------------------
;是闰年输出笑脸
yes:
mov al,02d
mov dl,al
mov ah,2
int 21h
call delay
jmp start
;79-------------------
;不是,输出一个字符
no:
mov al,029d
mov dl,al
mov ah,2
int 21h
call delay
jmp start
;87-------------------
exit:
ret
main endp
;91**************************
;以下是10s延时程序,正确的,抄书的
waitsec proc near
push ax
waitf:
in al,61h
and al,10h
cmp al,ah
je waitf
mov ah,al
loop waitf
pop ax
ret
waitsec endp
;104**************************
delay proc near
mov bl,20d
delayf:
mov cx,33144
call waitsec
dec bl
jne delayf
ret
delay endp
;114**************************
program ends
end main

最后感谢大家阅读!
...全文
346 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ice1835 2006-06-23
  • 打赏
  • 举报
回复
我是学C++的,但以后也想学汇编,为了以后楼主掌握汇编后能帮 我,所以顶一下
feny911 2006-06-23
  • 打赏
  • 举报
回复
楼主好像发了两帖一模一样的?
大熊猫侯佩 2006-06-22
  • 打赏
  • 举报
回复
你又新发了一帖?见新帖。
大熊猫侯佩 2006-06-22
  • 打赏
  • 举报
回复
你有新发了一帖?见新帖。
apay2004 2006-06-22
  • 打赏
  • 举报
回复
哦,好的,我再去那发一次.谢谢了jobs002
jobs002 2006-06-22
  • 打赏
  • 举报
回复
开发语言--汇编语言,汇编语言版
apay2004 2006-06-22
  • 打赏
  • 举报
回复
谢谢这位朋友issgates
issgates 2006-06-22
  • 打赏
  • 举报
回复
偶不会,帮顶一下。
apay2004 2006-06-22
  • 打赏
  • 举报
回复
对不住了,我没找见有汇编的版!对不住呀,望高手指点.
dreamover 2006-06-22
  • 打赏
  • 举报
回复
汇编的怎么发到这里来了?
都忘光光了
kevinliuu 2006-06-22
  • 打赏
  • 举报
回复
放错版了 吧
kevinliuu 2006-06-22
  • 打赏
  • 举报
回复
晕啊


汇编的

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧