我是靠谱客的博主 精明自行车,最近开发中收集的这篇文章主要介绍51单片机:用汇编语言表示分段函数51单片机:用汇编语言表示分段函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

51单片机:用汇编语言表示分段函数

学习51单片机中,虽然大部分的时间都在用C语言编写代码,但是因考试需要也学了一些简单的汇编知识。初识汇编是在微机原理,那时没有好好学,现在到用的时候,真是一把辛酸泪。还好考试涉及的知识点不是那么深,简做整理了一点,暂存博客吧。

开胃小题:

用汇编语言实现如下功能:
假设X储存在RAM 30H中,而Y存储在外部RAM31H中,
当 X > 0时,Y = X + 4;
当 X = 0, Y = 0 ;
当 X < 0时,Y = -1。

//--------------------------------------------------------
//    假设X储存在RAM 30H中,而Y存储在外部RAM31H中
//    Y = X + 4     X > 0
//    Y = 0          X = 0
//    Y = -1         X < 0
//--------------------------------------------------------
     MOV A,30H
     MOV DPTR,#31H
     CJNE A,#00H,D1
     LJMP D          ;转移到D
D1:
     JB Acc.7,D2    ;  小于0,转移到D2,大于0继续执行
     ADDC A,#04H    ;加4
     LJMP D
D2:
     MOV A,#81H
D:
     MOVX @DPTR,A    ;把A写入外部RAM

来点小难度:

用汇编语言实现如下功能:
假设X储存在RAM 30H中,而Y存储在外部RAM30H中,
当 X > 0时,Y = 2X + 4;
当 X = 0 ,Y = 0 ;
当 X < 0时,Y = -1。

//--------------------------------------------------------
//    假设X储存在RAM 30H中,而Y存储在外部RAM30H中
//    Y = 2X + 4     X > 0
//    Y = 0          X = 0
//    Y = -1         X < 0
//--------------------------------------------------------
     MOV A,30H
     MOV DPTR,#30H
     CJNE A,#00H,D1
     LJMP D         ;转移到D
D1:
     JB Acc.7,D2    ;  小于0,转移到D2,大于0继续执行
     RL A           ; 左移1位,实现乘2
     ADDC A,#04H    ;+4
     LJMP D   
D2:
     MOV A,#81H
D:                   ;完成Y写入外部存储器
     MOVX @DPTR,A    ;把A写入外部RAM

总结一下:

像这种分段函数题目要注意分类的情况,因为题目涉及到最终结果存储到外部,所以无论结果是多少最终都要被送入外部存储器,因此单独把写入外部拿出来。这里面的一些指令都是较为常见的,可能会有问题的是关于JB Acc.7,那是一个用来判断正负的指令,暂不多谈,会在以后的指令的部分中提到。

最后

以上就是精明自行车为你收集整理的51单片机:用汇编语言表示分段函数51单片机:用汇编语言表示分段函数的全部内容,希望文章能够帮你解决51单片机:用汇编语言表示分段函数51单片机:用汇编语言表示分段函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(29)

评论列表共有 0 条评论

立即
投稿
返回
顶部