标题: 在学习汇编51单片机有个问题请问下? [打印本页]

作者: 打杂的    时间: 2019-5-2 14:38
标题: 在学习汇编51单片机有个问题请问下?
trimvalue16bit   EQU   030H

MOV  trimvalue16bit ,#00H

MOV     A,#0F1H   
ADD     A,trimvalue16bit+01H
MOV     trimvalue16bit+01H,A
MOV     A,#0FFH
ADDC    A,trimvalue16bit
MOV     trimvalue16bit,A
这里的trimvalue16bit+01H 这样写是什么意思?为什么可以这样写不报错?这几句麻烦帮忙注释下,谢谢各位了


作者: hantu    时间: 2019-5-2 23:01
EQU就是宏定义,trimvalue16bet EQU 030H,这样在代码的其它地方的 trimvalue16bit都相当于用030H来换上。030H+01H当然不报错。
作者: Y_G_G    时间: 2019-5-3 14:04
EQU是一个伪指令,“在代码的其它地方的 trimvalue16bit都相当于用030H来换上”就是这个意思了
在A51中是允许+-*和求模,还有”大于等于“,”小于等于“这样子类似于C语言的运算符进行运算,也可以不用CJNE或者加减法指令直接比较两个数的大小的,但这种功能好像实用性并不怎么好,教科书很少有教这个的,一个指令最好不要有太多的运算,这只会让原本就让人头痛的汇编更加的麻烦
作者: baisstg    时间: 2019-5-4 00:27
trimvalue16bit   EQU   030H        ;让程序中trimvalue16bit调用030H  MOV  trimvalue16bit ,#00H                ;把00H传送到030H  MOV     A,#0F1H                                        ;把0f1H传送到累加器A ADD     A,trimvalue16bit+01H        ;把累加器A的内容加031H的内容后传回累加器A里面 MOV     trimvalue16bit+01H,A        ;把累加器A的内容传送到031H MOV     A,#0FFH                                        ;把0ffH传送到累加器A ADDC    A,trimvalue16bit                ;把累加器A的内容加030H的内容后传回累加器A里面 MOV     trimvalue16bit,A                ;把累加器A的内容传送到030H内




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1