弱电论坛

标题: ROM中的指令通过二进制数字形式表示是什么样的? [打印本页]

作者: 家电维修    时间: 2012-5-13 14:58
标题: ROM中的指令通过二进制数字形式表示是什么样的?
最佳答案:所有这些汇编语言指令必须以二进制数字的形式表示。为了简单起见,我们假定每条汇编语言指令具有一个唯一的编号,如下所示:
LOADA-1
LOADB-2
CONB-3
SAVEB-4
SAVEC mem-5
ADD -6
SUB -7
MUL -8
DIV -9
COM -10
JUMP addr -11
JEQ addr -12
JNEQ addr -13
JG addr -14
JGE addr -15
JL addr -16
JLE addr -17
STOP -18  这些数字称作opcode(优化代码)。在ROM中,我们的小程序看起来如下所示:
// 假定a位于地址128处
// 假定F位于地址129处
地址 opcode/值
0    3             // CONB 1
1    1
2    4             // SAVEB 128
3    128
4    3             // CONB 1
5    1
6    4             // SAVEB 129
7    129
8    1             // LOADA 128
9    128
10   3             // CONB 5
11   5
12   10            // COM
13   14            // JG 17
14   31
15   1             // LOADA 129
16   129
17   2             // LOADB 128
18   128
19   8             // MUL
20   5             // SAVEC 129
21   129
22   1             // LOADA 128
23   128
24   3             // CONB 1
25   1
26   6             // ADD
27   5             // SAVEC 128
28   128
29   11            // JUMP 4
30   8
31   18            // STOP

您可以看到,七行C代码变成了18行汇编语言,并且变成了ROM中的32个字节。




欢迎光临 弱电论坛 (http://bbs.rdzjw.com/) Powered by Discuz! X3.2