汇编小问题,新手求助

jkjkjkjjjkjk 2014-08-29 09:31:51
伪指令REPT:
CHAR = 'A'
TABLE LABEL BYTE
REPT 26
DB CHAR
CHAR = CHAR + 1
ENDM

展开后是:
TABLE LABEL BYTE
DB 'A'
DB 'A'+1
...
DB 'A'+25
先定义了字符A,重复块接下去的指令是 CHAR = CHAR + 1 ,那为什么 ‘A’ 和 ‘A’+1的地址是连续的,中间不还有条
CHAR = CHAR + 1 语句吗?

伪指令IRPC
伪指令IRPC的参数列表为什么是字符串?字符串中元素不是字符吗?像
TABLE LABEL BYTE
IRPC X,0123456789
DW (x+1)*2
ENDM中的0123456789为什么叫字符串?都没引号引起来。
而且这个例子书上说是把从2开始的10个偶数存入字数组TABLE中。
但是如果0123456789在这个表示字符串,那么里面的元素是字符,内存中存的应该是ASCII码值。进行(x+1)*2运算后得到的应该不是2开始的10个偶数。求解释!
...全文
139 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zara 2014-09-01
  • 打赏
  • 举报
回复
1. REPT 就是重复下面的内容,DB 定义个数据,占用空间,CHAR+1 只是将 CHAR 增 1 了,不占用空间的,下一个重复就是新的 DB 定义了,这样就生成了 'A' 到 'Z' 的连续定义。
2. 这个语句的操作对象就是字符串,所以没有要求将后面的字符串用引号括起来,加了反而会出错;这个,就是该语句这么规定的。

21,458

社区成员

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

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