作者wade0222 (热火一哥)
看板ASM
标题[请益] 8051的程式请教
时间Sat May 28 04:21:39 2011
小弟是组合语言的新手
我想问虽然是作业
但绝对不是叫各位前辈帮我写
是想请各位帮我看看我写的程式码出错在哪
我真的DEBUG好久了
我觉得有可能是我一开始定义的空间错了
但是我看教授的上课讲义,也找不到哪里有问题
烧录程式也没有显示ERROR
拜托各位帮个忙看一下了
http://ppt.cc/gQNU <==这是程式流程
以下是我写的程式码
ORG 00H
NUMBER: DB 58H ;学号末两码
DATE: DB 22H ;生日日期
NUMBER2: DB 06H
NUMBER3: DB 08H
NUMBER4: DB 03H
NUMBER5: DB 05H
RESULTC: DS 1
RESULTD: DS 1
COMPARE: MOV A,NUMBER
MOV B,DATE
DIV AB
JNZ START1
LJMP START2
START1: MOV A,NUMBER ;A减B
SUBB A,DATE
ADD A,NUMBER2 ;A减B加6
MOV B,NUMBER3 ;(A减B加6)除8
DIV AB
MOV RESULTC,A
MOV RESULTD,B
MOV R2,RESULTD
LJMP DISPLAY
START2: MOV A,DATE ;B减A
SUBB A,NUMBER
ADD A,NUMBER4 ;B减A加3
MOV B,NUMBER5 ;(B减A加3)除5
DIV AB
MOV RESULTC,A
MOV RESULTD,B
MOV R2,RESULTD
DISPLAY: MOV DPTR,#TABLE
MOV A,RESULTC ;丢入商数
MOVC A,@A+DPTR
MOV P1,A ;使七段显示器显示数字
ACALL DELAY
MOV R1,#FFH
MOV P1,R1 ;熄灭
ACALL DELAY
DJNZ R2,DISPLAY ;余数-1不为零的话跳回DISPLAY
MOV R1,#00H ;结束後全亮
MOV P1,R1
ACALL DELAY
LJMP END
DELAY: MOV R5,#200
S1: MOV R6,#100
S2: MOV R7,#50
DJNZ R7,$ ;R7减1,若非0则跳回自己
DJNZ R6,S2 ;R6减1,若非0则跳回S1
DJNZ R5,S1 ;R5减1,若非0则跳回S2
TABLE: DB 01H ; 0
DB 4FH ; 1
DB 12H ; 2
DB 06H ; 3
DB 4CH ; 4
DB 24H ; 5
DB 60H ; 6
DB 0FH ; 7
DB 00H ; 8
DB 04H ; 9
RET
END: END
请各位帮帮忙了,感谢!!!!
--
█◣ by jimmy508 █▇▅▃▁ ◢██◣ ▌
▇▇▇▇▇▇▇▇▇▋
██◣ ◢▋ █ ◥◣◢◤ ▅SNSD▅ █ █ █ ▍
═╗═╗
██◥◣◢◤▋▋▍ ▌◢█ ◢◤◥◣ ████ ◢ █ █ █ ▏
║ ║
██ ◥◤ ▋█ ● ▎▊ █ ║ ═╗║ ◢▁▁▁▁▁▁▁▁▁▎
╔╝╔╝
██ ▋ ◥◤ ▎ 人║ ═╣╠ ╚═╚═
欢迎搭乘少时车队,您好,我是 ║ / ║ ,很高兴为您服务。 车队编号
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.43.238.191
1F:推 WolfLord:检查A>=B 把A-B,C没有设定就是A>=B C设定就是A<B 不是用 05/28 04:42
2F:→ WolfLord:DIV ,另外,一般DB大多写在後面,而且应该要宣告区段 05/28 04:44
3F:→ WolfLord:比较不会不小心被编译器当成CODE 05/28 04:45
4F:→ WolfLord:另外,7BAR的资料这样写会被当CODE,CPU会当掉,还有,程 05/28 04:47
5F:→ WolfLord:式结束要写一个死回圈避免CPU乱跑EX: SJMP $ 05/28 04:47
6F:→ WolfLord:(你的DELAY跟TABLE混在一起,END後面没定义) 05/28 04:49
7F:→ markov:高手 高手 高高手XD 厉害 一下就挑很多问题出来 07/01 01:59