码迷,mamicode.com
首页 > 其他好文 > 详细

让cpu运行程序(三)

时间:2014-12-02 23:57:21      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:style   blog   ar   color   使用   sp   on   数据   div   

cpu的汇编程序设计

反映CPU功能的是它的指令系统,而指令系统设计得好不好,一般是反映在用这些指令编写的程序上。如果较多问题都能够用一个CPU的指令集编写的程序来处理,说明这个CPU的功能强大,反之就说明CPU的功能欠缺。

要检测我们设计的CPU是否达到了预期的目标,需要我们编写一定数量的汇编程序来对其进行测试。测试的时候,还必须将汇编程序转化成机器指令程序,不然CPU就无法识别。由此看来,学习计算机CPU设计制作,必须要学会汇编程序设计,还要能够将汇编程序翻译成机器指令程序。翻译汇编程序为机器指令程序的过程中,要知道程序出现的变量,需要安排到数据存储器的什么地方,还要将程序的存放首地址确定下来,然后确定好每一个程序标号的位置。因而,将汇编程序转化成机器指令程序,不仅仅是翻译的问题,还要进行规划,编排。所以人们将各种计算机语言翻译成机器语言的过程叫编译,其意思是说连编排带翻译。

这里我们就用上面设计的15条CPU指令系统,来编写一个能够求出64*53结果的程序。以这个程序为例,来说明汇编程序设计和编译的基本方法。作为练习,我们特意用加法来完成乘法运算,目的是运用更多的指令来编程,以便练习汇编程序设计与编译的方法。

例 3-1 编程计算64×53。

根据64*53问题所述要求,我们编写的汇编程序如下:

 1 start:        Sdal 1        ;    将1送da            
 2 
 3         Str    one        ;    放入one单元            
 4 
 5         Sub    one        ;    da置0                
 6 
 7         Str    result    ;    result内放0            
 8 
 9         Sdal 64        ;    将64送da            
10 
11         Str    x        ;    da值存入x单元        
12 
13         Sdal 53        ;    将53送da            
14 
15         Str    y        ;    da值存入y单元        
16 
17 loop:    Lda    y        ;    y值送da                 
18 
19         Jz    exit        ;    da为0转到exit执行     
20 
21         Sub one        ;    da-1                     
22 
23         Str    y        ;    da值存入y单元         
24 
25         Lda    result    ;    da取result的值         
26 
27         Add    x        ;    result+x                 
28 
29         Str    result    ;    结果存入result         
30 
31         Jmp    loop        ;    转到loop执行         
32 
33 exit:        Out    result    ;    输出result内容         
34 
35         Stp            ;    停止         

汇编程序的基本单位是语句,一个语句的前面可以有标号,习惯上标号的后面要加冒号,以示与指令的区别。汇编程序中不论标号还是指令操作对象,一律使用标识符来表示。汇编程序的语句是以空格做为结束符,分号是注释符号,其后面的文字都不是程序有效内容。在汇编程序设计中,人们习惯将汇编指令的操作对象称为变量。

让cpu运行程序(三)

标签:style   blog   ar   color   使用   sp   on   数据   div   

原文地址:http://www.cnblogs.com/Karma-wjc/p/4138760.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!