谢谢回帖!!!

sourcecodeoflinux 2008-04-19 09:56:29

//程序功能是在屏幕上现实25+9=34
问题:对类型操作符的使用不是很清楚,什么情况下必须使用,是不是针对特定的某一类指令???

.486
DATA SEGMENT USE16
SUM DB ?,?
MESG DB '25+9='
DB 0,0,'$'
N1 DB 9
N2 DB 25
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
BEG :MOV AX , DATA
MOV DS ,AX
MOV BX ,OFFSET SUM
MOV AH,9
MOV AL,25
ADD AH ,AL
MOV[BX],AH\\此处为什么不用重新规定[bx]的类型属性为字节属性(即:为什么不改为mov byte ptr[bx],ah)?
CALL CHANG
MOV AH, 9
MOV DX , OFFSET MESG
INT 21H
MOV AH, 4CH
INT 21H
CHANG PROC
LAST: CMP BYTE PTR [BX], 10\\此行往下所有的byte ptr 去掉编译为什么会出错,谢谢详细解释!!!
JC NEXT
SUB BYTE PTR [BX ], 10
INC BYTE PTR [BX+7]
JMP LAST
NEXT: MOV DL , SUM
ADD [BX+8],DL
ADD BYTE PTR [BX+7],30H
ADD BYTE PTR [BX+8],30H
RET
CHANG ENDP
CODE ENDS
END BEG
...全文
96 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cvvtiszy 2008-04-19
  • 打赏
  • 举报
回复
MOV[BX],AH ;ah是一个字节,即使规定类型也是一个字节,所以不用规定啦


CMP BYTE PTR [BX], 10 ;10可以当作0ah 也可以当作000ah,所以要规定它为0ah,也就是一个字节
dongyi940333 2008-04-19
  • 打赏
  • 举报
回复
同意LS的^_^

21,459

社区成员

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

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