我的汇编程序中 ORG...老是编译不过去,请高手指点啊....

wlrt081 2007-05-24 09:21:02
以下是我的程序,在编译中把 标注出来的两句注释掉后便可通过,可是.....


ORG 1000H
JMP START
START: MOV 30H,#66H
MOV 31H,#0AAH
MOV 32H,#95H
MOV 33H,#65H
MOV 34H,#59H
MOV 35H,#56H
MOV 60H,#00
MOV 61H,#00
MOV 62H,#00
MOV 2AH,#00
MOV 2BH,#00
MOV 2CH,#00
MOV 2DH,#100
MOV 2EH,#8

MOV TMOD,#11H
MOV TH0,#0F8H
MOV TL0,#30H
MOV TH1,#0D8H
MOV TL1,#0F0H

MOV IE,#8AH
SETB TR0
SETB TR1

JF: JNB P1.5,JS
CALL DELAY
MOV A,2BH
INC A
DA A
MOV 2BH,A
CJNE A,#60,JFF
MOV 2BH,#00

JFF: JB P1.5,$
CALL DELAY

JS: JNB P1.6,JF
CALL DELAY
MOV A,2AH
INC A
DA A
MOV 2AH,A
CJNE A,#24,JSF
MOV 2AH,#00

JSF: JB P1.6,$
CALL DELAY
JMP JF


ORG 001BH ----------------------这句通不过!!!!!!!!
TIM1: CLR EA
MOV TH1,#0D8H
MOV TL1,#0F0H
DJNZ 2DH,X4
MOV 2DH,#100
MOV A,2CH
ADD A,#1
DA A
MOV 2CH,A
CJNE A,#60,X4
MOV 2CH,#00
MOV A,2BH
ADD A,#1
DA A
MOV 2BH,A
CJNE A,#60,X4
MOV 2BH,#00
MOV A,2AH
ADD A,#1
DA A
MOV 2AH,A
CJNE A,#24,X4
MOV 2AH,#00

X4: SETB EA
SJMP JF

ORG 000BH --------------------------------------这句通不过!!!!!

TIM0: CLR EA
MOV TH0,#0F8H
MOV TL0,#30H

MOV A,2AH
ANL A,#0F0H
SWAP A
MOV DPTR ,#TAB
RL A
MOVC A,@A+DPTR
MOV 36H,A
INC DPTR
MOVC A,@A+DPTR
MOV 37H,A
MOV A,2AH
ANL A,#0FH
MOV DPTR ,#TAB
RL A
MOVC A,@A+DPTR
MOV 38H,A
INC DPTR
MOVC A,@A+DPTR
MOV 39H,A

MOV A,2BH
ANL A,#0F0H
SWAP A
MOV DPTR ,#TAB
RL A
MOVC A,@A+DPTR
MOV 3AH,A
INC DPTR
MOVC A,@A+DPTR
MOV 3BH,A
MOV A,2BH
ANL A,#0FH
MOV DPTR ,#TAB
RL A
MOVC A,@A+DPTR
MOV 3CH,A
INC DPTR
MOVC A,@A+DPTR
MOV 3DH,A

MOV A,2CH
ANL A,#0F0H
SWAP A
MOV DPTR ,#TAB
RL A
MOVC A,@A+DPTR
MOV 3EH,A
INC DPTR
MOVC A,@A+DPTR
MOV 3FH,A
MOV A,2CH
ANL A,#0FH
MOV DPTR ,#TAB
RL A
MOVC A,@A+DPTR
MOV 40H,A
INC DPTR
MOVC A,@A+DPTR
MOV 41H,A


LOOP:CALL PD
MOV A,32H
ANL A,#80H
RR A
MOV 60H,A
MOV A,32H
RL A
MOV 32H,A

MOV A,33H
ANL A,#80H
ORL A,60H
RR A
MOV 60H,A
MOV A,33H
RL A
MOV 33H,A

MOV A,34H
ANL A,#80H
ORL A,60H
RR A
MOV 60H,A
MOV A,34H
RL A
MOV 34H,A

MOV A,35H
ANL A,#80H
ORL A,60H
RR A
MOV 60H,A
MOV A,35H
RL A
MOV 35H,A

MOV A,36H
ANL A,#80H
ORL A,60H
RR A
MOV 60H,A
MOV A,36H
RL A
MOV 36H,A

MOV A,37H
ANL A,#80H
ORL A,60H
RR A
MOV 60H,A
MOV A,37H
RL A
MOV 37H,A

MOV A,38H
ANL A,#80H
ORL A,60H
RR A
MOV 60H,A
MOV A,38H
RL A
MOV 38H,A

MOV A,39H
ANL A,#80H
ORL A,60H
MOV 60H,A
MOV A,39H
RL A
MOV 39H,A

MOV A,3AH
ANL A,#80H
RR A
MOV 61H,A
MOV A,3AH
RL A
MOV 3AH,A

MOV A,3BH
ANL A,#80H
ORL A,61H
RR A
MOV 61H,A
MOV A,3BH
RL A
MOV 3BH,A

MOV A,3CH
ANL A,#80H
ORL A,61H
RR A
MOV 61H,A
MOV A,3CH
RL A
MOV 3CH,A

MOV A,3DH
ANL A,#80H
ORL A,61H
RR A
MOV 61H,A
MOV A,3DH
RL A
MOV 3DH,A

MOV A,3EH
ANL A,#80H
ORL A,61H
RR A
MOV 61H,A
MOV A,3EH
RL A
MOV 3EH,A

MOV A,3FH
ANL A,#80H
ORL A,61H
RR A
MOV 61H,A
MOV A,3FH
RL A
MOV 3FH,A

MOV A,40H
ANL A,#80H
ORL A,61H
RR A
MOV 61H,A
MOV A,40H
RL A
MOV 40H,A

MOV A,41H
ANL A,#80H
ORL A,61H
MOV 61H,A
MOV A,41H
RL A
MOV 41H,A

MOV A,30H
ANL A,#80H
RR A
MOV 62H,A
MOV A,30H
RL A
MOV 30H,A

MOV A,31H
ANL A,#80H
ORL A,62H
RR A
RR A
RR A
RR A
RR A
RR A
MOV 62H,A
MOV A,31H
RL A
MOV 31H,A

MOV A,60H
MOV P0,A
MOV A,61H
MOV P2,A
MOV A,62H
MOV P3,A
DEC 2EH
JMP LOOP

X5: SETB EA
JMP START

PD:MOV A,2EH
JZ X5
RET

DELAY: MOV R6,#60
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET


TAB: DB 95H 56H 0AAH 96H
DB 95H 5AH 99H 56H
DB 5AH 96H 59H 66H
DB 55H 66H 0AAH 56H
DB 55H 56H 59H 56H

END


...全文
349 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mengshijie_1981 2007-05-25
  • 打赏
  • 举报
回复
ORG后面的数必须大于等于100H,因为应用程序对应的这部分空间(256字节)用于放置PSP,dos下的应用程序头部,用于定为应用程序,所以我们不能使用这部分地址空间。即便是如此,在源代码中的ORG伪指令中使用小于100H的数字也是可以的,你的源代码错在了代码顺序混乱上了,ORG指令应该在源代码头部使用,不应该在源代码代码段的其他地方使用。但可以在数据段中任意使用。
foxdeng 2007-05-24
  • 打赏
  • 举报
回复
我估计是16位dos实模式下的段长度的限制--每个段不超过64k,你开始的ORG 1000H
已经让程序超出了4k,后面再来org就有可能让后面的代码部分超出了。你将最前面的ORG 1000H
改小一点比如 100hH
yunzhe 2007-05-24
  • 打赏
  • 举报
回复
org
只能在段开始使用把
zoologist 2007-05-24
  • 打赏
  • 举报
回复
改为 dup(xxx) 0 这样的试验一下吧 xxx是你手工计算出来的对齐

21,453

社区成员

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

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