求大神帮忙看看小程序,不知道问题出在哪?

luoxianglian 2012-08-04 10:55:30
.386
.model flat, stdcall
includelib msvcrt.lib
printf PROTO C :ptr sbytef,:vararg
scanf PROTO C : ptr sbyte,:vararg
.data
year1 dword ?
month1 dword ?
day1 dword ?
year2 dword ?
month2 dword ?
day2 dword ?
N = 2
szouputFmt1 byte 'the first date is %d/%d/%d',0ah,0
szouputFmt2 byte 'the second date is %d/%d/%d',0ah,0
szouputFmt byte 'the bigger date is %d/%d/%d',0ah,0
szouputFme byte 'equal!',0ah,0
szinputFmt byte '%d%d%d',0ah,0
.code
start:
mov esi N
invoke scanf,offset szinputFmt,offset year1,offset month1,offset day1
invoke printf,offset szouputfmt1,year1,month1,day1
sub esi 1
invoke scanf,offset szinputFmt,offset year2,offset month2,offset day2
invoke printf,offset szouputfmt2,year2,month2,day2
sub esi 1
jz c10
c10:
mov eax year1
sub eax year2
jz c20
jb c30
ja c40
c30:
invoke printf offset szouputFmt year2,month2,day2
c40:
invoke printf offset szouputFmt year1,month2,day2

c20:
mov eax month1
sub eax month2
jz c50
jb c60
ja c70
c60:
invoke printf offset szouputFmt year2,month2,day2
c70:
invoke printf offset szouputFmt year1,month2,day2
c50:
mov eax day1
sub eax day2
jz c80
jb c90
ja c100

c90:
invoke printf offset szouputFmt year2,month2,day2
c100:
invoke printf offset szouputFmt year1,month2,day2
c80:
invoke printf offset szouputFme
ret
end start

这是一个简单的比较日期的程序,连接时总是报错,希望大神帮忙!



...全文
99 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
luoxianglian 2012-08-05
  • 打赏
  • 举报
回复
还是有错
luoxianglian 2012-08-05
  • 打赏
  • 举报
回复
有提供比较日期的函数,请问是哪个呢?还有,为什么要改为mov esi, N 呢?
紫郢剑侠 2012-08-05
  • 打赏
  • 举报
回复
mov esi N



mov esi, N

罢?

Windows提供有日期比较的API函数罢

luoxianglian 2012-08-04
  • 打赏
  • 举报
回复
错误信息很多,我是在dos命令行里运行的,我试着发图片给你,但是好像发不了,要么你复制一下代码然后运行一下吧
WJN92 2012-08-04
  • 打赏
  • 举报
回复
把错误信息也发一下吧

21,459

社区成员

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

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