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

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

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

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

搜索更多相关主题的帖子: 变量 汇编 定义 寄存器 请教 
2006-12-20 19:30
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
在汇编中没有变量的概念,只有用标号来表示指定的内存地址,在指定的内存地址中存放你需要临时保存的数据。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2006-12-20 19:45
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 
a dw ? ;定义16位的变量

R0~R7没听过

2006-12-20 19:46
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 
以下是引用hu9jj在2006-12-20 19:45:50的发言:
在汇编中没有变量的概念,只有用标号来表示指定的内存地址,在指定的内存地址中存放你需要临时保存的数据。

这么快


2006-12-20 19:47
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
R0~R7可能是在水平考试的虚拟机中的寄存器吧?

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2006-12-20 19:49
lefttime
Rank: 1
等 级:新手上路
帖 子:162
专家分:0
注 册:2006-10-6
收藏
得分:0 
而变量在汇编中是必须存在的
按照你的意愿:
A=256 ;这只是一个简单的例子,不只是这样,还可以让这个定义的变量存放内存地址哦这在
选择分支里是非常实用

R0~R7是单片机中的特殊寄存器,在80x86/80x88汇编里面不出现

我是金子,我要闪光的
2006-12-20 20:03
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
lefttime
Rank: 1
等 级:新手上路
帖 子:162
专家分:0
注 册:2006-10-6
收藏
得分:0 

晕啊,这位兄弟你先说明啊,你这用的是单片机写,我还以为是汇编早些发上来不就行啦


我是金子,我要闪光的
2006-12-20 21:01
lefttime
Rank: 1
等 级:新手上路
帖 子:162
专家分:0
注 册:2006-10-6
收藏
得分:0 
很明显,单片机中哪来的DD,DW,DB啊
ERROR A9:SYNTAX ERROR 这样出现语法错误是必须的......把你想实现的功能说明下,加上你的大体的思路

我是金子,我要闪光的
2006-12-20 21:03
快速回复:请教大家一个汇编中定义变量的问题
数据加载中...
 
   



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

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