找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1345|回复: 3
打印 上一主题 下一主题
收起左侧

在学习汇编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 这样写是什么意思?为什么可以这样写不报错?这几句麻烦帮忙注释下,谢谢各位了

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:462827 发表于 2019-5-2 23:01 | 只看该作者
EQU就是宏定义,trimvalue16bet EQU 030H,这样在代码的其它地方的 trimvalue16bit都相当于用030H来换上。030H+01H当然不报错。
回复

使用道具 举报

板凳
ID:401564 发表于 2019-5-3 14:04 | 只看该作者
EQU是一个伪指令,“在代码的其它地方的 trimvalue16bit都相当于用030H来换上”就是这个意思了
在A51中是允许+-*和求模,还有”大于等于“,”小于等于“这样子类似于C语言的运算符进行运算,也可以不用CJNE或者加减法指令直接比较两个数的大小的,但这种功能好像实用性并不怎么好,教科书很少有教这个的,一个指令最好不要有太多的运算,这只会让原本就让人头痛的汇编更加的麻烦
回复

使用道具 举报

地板
ID:510365 发表于 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内
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表