assembly 此代码段在程序集中的功能

vcudknz3  于 2023-01-21  发布在  其他
关注(0)|答案(1)|浏览(99)

下面的代码是我从一个网站上找到的一段代码,用来学习更多关于assambly的知识。但是我不知道这段代码到底做了什么。例如,do.ORG 140做了什么?为什么是140?或者在这一行中:数据库0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F我们如何写它们?从哪里写?

.ESEG ;7segment LUT
.ORG 140
.DB 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F
sycxhyv7

sycxhyv71#

.ESEG ;7segment LUT
它指定EEPROM存储器部分,并对数据的用途进行注解
.ORG 140
这指定了以下数据将从地址140开始。.org的语义取决于您使用的汇编器品牌。
.DB 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F
这是查找表(LUT)中的10个字节的数据,用于描述7段显示器中的哪些段必须点亮才能显示特定数字。该数字用作数组的索引,其中索引从偏移量0开始。因此,第一个条目对哪些段必须点亮才能显示0进行编码。
以二进制编写,在指定偏移量处,我们有以下值:

0 → 011 1111
1 → 000 0110
2 → 101 1011
3 → 100 1111
4 → 110 0110
5 → 110 1101
6 → 111 1101
7 → 000 0111
8 → 111 1111
9 → 110 1111

这意味着7段显示器“连接”/“连线”到相应的位,如下所示:

0000
5    1
5    1
 6666    
4    2
4    2
 3333

例如,4的位1、2、5和6为on,当4亮起时,其模式类似于以下模式:

5    1
5    1
 6666    
     2
     2

一些7段显示器的特点是在左下或右下有一个点,这样就可以显示像3.14这样的小数,在这种情况下,可以将.连接到第7位。
并且为了表示十六进制数字AbcdEF,可以以如下显而易见的方式扩展数组

10 → 111 0111 ; A
11 → 111 1100 ; b
...

对于负数,将-编码为

− → 100 0000 ; minus

相关问题