| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4933 人关注过本帖
标题:请教大家一个汇编中定义变量的问题
取消只看楼主 加入收藏
wanchaoh
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2005-7-22
收藏
 问题点数:0 回复次数:11 
请教大家一个汇编中定义变量的问题
我想在汇编里面定义一个16位的变量a,用它来储存大于256的数,请问大家这样的变量在汇编里面如何实现的呢?谢谢

还有我想请问一下寄存器R0~R7是几位的?

60000左右的数能否全部存放而不溢出?
再次谢谢

[此贴子已经被作者于2006-12-20 19:39:59编辑过]

搜索更多相关主题的帖子: 变量 汇编 定义 寄存器 请教 
2006-12-20 19:30
wanchaoh
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2005-7-22
收藏
得分:0 
a dw ? ;定义16位的变量

这个可以定义16位的变量?
那我试试
2006-12-20 20:34
wanchaoh
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2005-7-22
收藏
得分:0 

我把我的程序发上来请你们帮我看看到底那里出现问题了吧:

ORG 0000H
LJMP MAIN
ORG 000BH
LJMP SUBX
ORG 001BH
LJMP SUBY

ORG 30H
MAIN:
X DW ? ;想定义一个16位的变量
Y DW ? ;同上
MOV TL0,#0CEH ;初始化
MOV TH0,#0CEH
MOV TL1,#0CEH
MOV TH1,#0CEH
MOV TMOD,#01100110B
MOV TCON,#01010000B
MOV IE,#10001010B
SJMP$ ;循环等待

ORG 100H
SUBX: ;当T0中断时
PUSH ACC
MOV TL0,#0CEH ;赋初值
MOV TH0,#0CEH ;同上
JBC P1.0,JIAX ;当P1.0口为1时,转到JIAX段
DEC X ;若P1.0口不为1时,X变量减1
POP ACC ;释放现场
RETI ;开中断

JIAX: ;当P1.0时
INC X ;X加1
POP ACC ;释放
RETI ;开中断

ORG 200H
SUBY: ;当T0中断时
PUSH ACC
MOV TL1,#0CEH
MOV TH1,#0CEH
JBC P1.1,JIAY ;若P1.1为1时,转到JIAY段
DEC Y ;若不为1时,Y自减1
POP ACC
RETI

JIAY: ;当P1.1为1时
INC Y ;Y自加1
POP ACC
RETI

上面就是全部的程序。
调试的结果是:
X DW ?
Y DW ?
这两段ERROR A9:SYNTAX ERROR
MOV TL0,#0CEH ;初始化
MOV TH0,#0CEH
MOV TL1,#0CEH
MOV TH1,#0CEH
所有这些初始化都出现同一个错误:ERROR A45:UNDEFINED SYMBOL(PASS-2)

最后还加上一个warning A41:MISSING "END" STATEMENT

好多错误呀,请大家给我出出注意,谢谢了!

[此贴子已经被作者于2006-12-20 20:57:25编辑过]

2006-12-20 20:56
wanchaoh
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2005-7-22
收藏
得分:0 
好,我说说我的思路吧。

我准备用AT89s51来做一个功能:就是T0、T1分别为外部的两个脉冲源进行计数,当1个脉冲被计数器记录到后,计数器产生

中断,然后进入SUBX/SUBY子程序,在判别P1.0/P1.1位是1还是0后,利用两个16位变量X、Y分别进行自加1或者自减1,以

分别达到记录两个脉冲源发出的脉冲个数的目的。

大概就是这个思路了。
2006-12-20 21:16
wanchaoh
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2005-7-22
收藏
得分:0 
我之所以想要两个16位的变量来计算脉冲个数,是因为脉冲数很大,如果只是8位的话是不够的。。。
2006-12-20 21:20
wanchaoh
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2005-7-22
收藏
得分:0 
大家请解答一下吧,我把它顶起来不让它沉下去
2006-12-20 22:04
wanchaoh
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2005-7-22
收藏
得分:0 

之前的lefttime大哥请给个建议吧...

2006-12-21 10:00
wanchaoh
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2005-7-22
收藏
得分:0 
a dw #300 ;数可以变,当然这里是一个,所以范围在0~65535
哦?
那如果我要记录负数的呢?如果范围只是0~65535的话!

很谢谢你的帮助
哈哈
2006-12-21 15:27
wanchaoh
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2005-7-22
收藏
得分:0 
那如果我要一个可以从-65535-+65535的变量的华,那可要如何定义呢?
2006-12-21 15:49
wanchaoh
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2005-7-22
收藏
得分:0 

兄台这句话我就不明白了,脱离单片机道汇编?按照我的理解,汇编就是写入道单片机里面的程序不是吗?
按照你的方法应该如何来实现呢?

2006-12-21 16:46
快速回复:请教大家一个汇编中定义变量的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038133 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved