下面的代码是我从一个网站上找到的一段代码,用来学习更多关于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
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进行编码。以二进制编写,在指定偏移量处,我们有以下值:
.ESEG ;7segment LUT
.ORG 140
140
.org
.DB 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F
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亮起时,其模式类似于以下模式:
4
5 1 5 1 6666 2 2
一些7段显示器的特点是在左下或右下有一个点,这样就可以显示像3.14这样的小数,在这种情况下,可以将.连接到第7位。并且为了表示十六进制数字A、b、c、d、E和F,可以以如下显而易见的方式扩展数组
3.14
.
A
b
c
d
E
F
10 → 111 0111 ; A 11 → 111 1100 ; b ...
对于负数,将-编码为
-
− → 100 0000 ; minus
1条答案
按热度按时间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
进行编码。以二进制编写,在指定偏移量处,我们有以下值:
这意味着7段显示器“连接”/“连线”到相应的位,如下所示:
例如,
4
的位1、2、5和6为on,当4
亮起时,其模式类似于以下模式:一些7段显示器的特点是在左下或右下有一个点,这样就可以显示像
3.14
这样的小数,在这种情况下,可以将.
连接到第7位。并且为了表示十六进制数字
A
、b
、c
、d
、E
和F
,可以以如下显而易见的方式扩展数组对于负数,将
-
编码为