一个简单的汇编程序

雪域迷影 2010-10-24 11:10:35
我初学汇编,好多东西不太懂,大家帮忙看一下下面这个
程序到底错在哪里,我在Masm for Windows 集成实验环境 2010
下编译不通过。

DATAS SEGMENT
;此处输入数据段代码
a DB 1
b DB 2
c DB ?
str DB 13,10,'c=S' ,13,10,'$'
DATAS ENDS

STACKS SEGMENT
;此处输入堆栈段代码

STACKS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
MOV AL, a
ADD AL, b
MOV c, AL
LEA DX, str
MOV AH,09
INT 21H
ADD c,30H
MOV DL,c
MOV AH,2
INT 21H


MOV AH,4CH
INT 21H
CODES ENDS
END START


顺便说一句我用的英文旗舰版Win7系统,
不知道哪里出错了?
还有str DB 13,10,'c=S' ,13,10,'$'
这条语句中的13,10是指变量str的存储地址吗?
如果是的话它有采用何种寻址方式呢?
还有一个就是语句最后的13,10,'$'什么意思啊?
...全文
195 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
大熊猫侯佩 2010-10-24
  • 打赏
  • 举报
回复
'$'是dos中表示字符串结尾的符号
雪域迷影 2010-10-24
  • 打赏
  • 举报
回复
哦,明白了,谢谢大家了!
wisji8 2010-10-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 vysnow 的回复:]
我也不知道为什么。。在Masm for Windows 集成实验环境 2010

下编译,总是报c字符错误

然而LZ的程序把c改成sum或其他字符代替就行了、没理由啊?。。。

另外,

这条语句中的13,10是指变量str的存储地址吗?还有一个就是语句最后的13,10,'$'什么意思啊?
13,10是回车和换行的ASCII码,

定义str DB 13,10,'c=S'……
[/Quote]
嗯,用C是错的,这个软件我以前学习王爽的《汇编语言》的时候也用过,用C后就错,后来我就去网站上问是为什么,他说是保留字。
mengcheng8487 2010-10-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 vysnow 的回复:]
我也不知道为什么。。在Masm for Windows 集成实验环境 2010

下编译,总是报c字符错误

然而LZ的程序把c改成sum或其他字符代替就行了、没理由啊?。。。

另外,

这条语句中的13,10是指变量str的存储地址吗?还有一个就是语句最后的13,10,'$'什么意思啊?
13,10是回车和换行的ASCII码,

定义str DB 13,10,'c=S'……
[/Quote]

C 以被某些版本编译器定为保留字
vysnow 2010-10-24
  • 打赏
  • 举报
回复
我也不知道为什么。。在Masm for Windows 集成实验环境 2010

下编译,总是报c字符错误

然而LZ的程序把c改成sum或其他字符代替就行了、没理由啊?。。。

另外,

这条语句中的13,10是指变量str的存储地址吗?还有一个就是语句最后的13,10,'$'什么意思啊?
13,10是回车和换行的ASCII码,

定义str DB 13,10,'c=S',13,10,'$'

最后的13,10,'$'意思是回车、换行,然后字符串结束,此时int中断返回

21,459

社区成员

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

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