单片机的指令系统
一、概述
1、指令的格式:“标号:操作码助记符[(目的操作数),(源操作数)];注释”
我们已知,要让计算机工作,就得给计算机发指令,并且我们从上一课已知,计算机要完成你所给定的任务,必须为其编写相应的程序(所有指令的集合),计算机是机器只识别机器语言,机器语言是一种用二进制代码“0”和“1”的形式表示的,而如果我们使用者要用这种语言编写指令,将是繁琐费时和困难重重的;为此人们发明了汇编语言,汇编语言是一种用助记符来表示的面向机器的程序设计语言。汇编语句与机器指令是一一对应的,具体的汇编语句格式如上:助记符格式,如MOV P1,#0FFH,这样就方便使用和记忆了。
2、汇编
我们写指令使用汇编格式,而计算机只懂机器码格式,所以要将我们写的汇编格式的指令转换为机器码格式,这种转换有两种方法:手工汇编和机器汇编。手工汇编实际上就是查表,因为这两种格式纯粹是格式不同,所以是一一对应的,查一张表格就行了。不过手工查表不仅麻烦而且随着程序的长度增加完成的可能性越小,所以就有了计算机编译软件,用计算机软件来替代手工查表,这就是机器汇编,所以你起码要在你电脑中安装一种编译软件,如:KeilC51\MedWin等,可在网上下载,如直接输入MedWin搜索。当然要将你编写的程序放进如89C51单片机芯片中让它完成你想的任务,还要烧写芯片,烧写芯片是由编程器来完成的,所以你要购买一款编程器,如TOP851等;
3、指令格式祥解:“标号:操作码助记符[(目的操作数),(源操作数)];注释”
先看一段程序:
MAIN: MOV SP,#70H;将堆栈设置从70H单元地址开始
ACALL DELAY;
。。。
。。。
AJMP MAIN;MAIN为标号,程序将直接跳至该标号出继续执行
END
MAIN即是标号,MOV、ACALL、AJMP即是操作码助记符,SP就是目的操作数,#70H就是源操作数。
标号是指令的符号地址,可根据需要设置。一般用英文字母、数字表示,某个语句一旦赋予某个标号,则在其它语句的操作数中就可以直接引用该标号,以便控制程序的转移或寻址。标号和操作码之间用“:”号分开。
操作码与操作数之间用空格分隔,操作码在汇编语言中用助记符表示,它的作用是命令CPU作何种操作。操作数有目的操作数和源操作数,之间用“,”分隔。
注释是对该指令的解释,可有可无,对初学者来说应多写注释,注释之前用“;”隔开。
4、寻址方式
有7种方式如下:“@ ”表示为间接寻址