PIC系列单片机12位(基本产品级)指令集
pic单片机 类型

pic单片机类型【原创实用版】目录1.PIC 单片机概述2.PIC 单片机的主要类型3.PIC 单片机的发展历程4.PIC 单片机在我国的应用现状及前景正文一、PIC 单片机概述PIC 单片机,全称 Peripheral Interface Controller,即外设接口控制器,是一种高性能、低成本的单片机。
它由美国 Microchip 公司研发并生产,具有丰富的外设接口和可编程 I/O 口,广泛应用于嵌入式系统、自动化控制、智能家居、消费电子等领域。
二、PIC 单片机的主要类型1.根据指令集分类:PIC 单片机可以分为单指令周期(Single Cycle)和双指令周期(Double Cycle)两大类。
2.根据存储器容量分类:PIC 单片机可以分为小型、中型和大型存储器容量的单片机。
3.根据工作电压分类:PIC 单片机可以分为低电压、中电压和高电压单片机。
4.根据外设接口分类:PIC 单片机可以分为具有不同外设接口的单片机,如 UART、SPI、IC 等。
三、PIC 单片机的发展历程自 1993 年 Microchip 公司推出第一款 PIC 单片机以来,PIC 系列单片机已经经历了多个版本的更新迭代,性能和功能不断完善。
从最初的 PIC16C5x 系列发展到现在的 PIC32 系列,PIC 单片机已经覆盖了众多应用领域,满足了不同场景的需求。
四、PIC 单片机在我国的应用现状及前景近年来,随着我国经济的快速发展,嵌入式系统应用越来越广泛,PIC 单片机在我国的应用也得到了迅速推广。
目前,PIC 单片机已广泛应用于工业自动化、智能家居、消费电子等领域。
PIC单片机简介

PIC 单片机简介
PIC 单片机简介:
PIC 单片机(Peripheral Interface Controller)是一种用来可开发的去控制外围设备的可编程集成电路(IC)。
由美国Microchip(微星)公司推出的PIC
单片机系列产品,首先采用了RISC 结构的嵌入式微控制器,其高速度、低
电压、低功耗、大电流LCD 驱动能力和低价位OTP 技术等都体现出单片机
产业的新趋势。
现在PIC 系列单片机在世界单片机市场的份额排名中已逐年
升位,尤其在8 位单片机市场,据称已从1990 年的第20 位上升到目前的第
二位。
PIC 单片机从覆盖市场出发,已有三种(又称三层次)系列多种型号的产
品问世,所以在全球都可以看到PIC 单片机从电脑的外设、家电控制、电讯
通信、智能仪器、汽车电子到金融电子各个领域的广泛应用。
现今的PIC 单
片机已经是世界上最有影响力的嵌入式微控制器之一。
PIC 单片机特点:
1、精简指令集(RISC)技术
PIC 系列单片机的指令系统只有35 条指令,常用约20 条
好学、易用;绝大多数为单周期指令,执行速度快!
MCS-51 系列单片机指令系统有111 条指令!。
PIC指令集中文介绍

编译信息的输出显示级别有三种,分别是 0、1 和 2。
级别 0 代表显示所有信息,包括各种错误、警告和提示信息,如图 3-14 所示某些信息单独设定显示或关闭。
每个信息都有一个识别标号,见图 3-14 中信息项“[]”中的数字,打开或关闭某类信息只需在 errorlev
errorlevel 0, -302, -305 ;显示所有信息,但不需要302 和 305 这两类提示信息
errorlevel 1, +305 ;显示错误和警告信息,但同时还要关注 305类的提示信息
,分别是 0、1 和 2。
级别 0 代表显示所有信息,包括各种错误、警告和提示信息,如图 3-14 所示;级别 1 代表显示错误和警告信息,忽略提示信息;个信息都有一个识别标号,见图 3-14 中信息项“[]”中的数字,打开或关闭某类信息只需在 errorlevel 伪指令中引用信息识别标号,并在其前面用“+”或“-”
有信息,但不需要302 和 305 这两类提示信息
警告信息,但同时还要关注 305类的提示信息
示错误和警告信息,忽略提示信息;级别 3代表只显示错误信息而忽略警告和提示信息。
在任何一个大的级别上还可以对信息识别标号,并在其前面用“+”或“-”号,即代表打开或关闭这一类信息,例如:。
PIC单片机指令集

DECF f,d; 对f的内容作减1运算,结果按d指定地址存放,结果d=0,则z=0.
INCF f,d; 对f的内容作递增1,结果按d指定地址存放,结果d=0,则z=0
COMF f,d; 对f的内容取反,求某个数的补码即可通过此指令后加1,影响标志位z。
SLEEP ; cpu进入休休眠模式.
end
如果传送的数据为0侧标志z置位
CLRW ;该指令对w寄存器清0,同时标志位z置位0。另外有一条指令movlw 0x00也可以使w寄存器
清0,但不影响任何状态标志。
CLRF ;对数据寄存器f清0,同时标志位z置0.
ADDWF f,d;数据寄存器f的内容与w的内容相加,结果d=f,w的内容不变;d=w,数据寄存器f内容不变,
的13位地址.
RETURN; 子程序结束返回
RETLW ; 子程序ቤተ መጻሕፍቲ ባይዱ束返回并在w寄存器内赋一8位立即数.其他执行同(RETURN...),该指令常用于查表功能
RETFIE ; 中断程序结束并返回,(弹出栈顶内容到PC,同是把INTCON寄存器的第7位GIE置1.
CLRWDT ; 看门狗计数器清0
不影响标志位.
ADDLW k; 把w寄存器的值和立即数(8位)相加,结果存放在w.
影响标志位 z dc c
SUBLW k; 立即数减去w,如果k=w,则z=1;k>w,则c=1;k<w,则c=0
IORLW k; w寄存器与立即数相或,结果存放在w,影响标志位 z.
********字节操作指令*******
NOP - ;空操作
MOVWF f ;把W寄存器的内容传送至数据寄存器中,w寄存器的内容保持不变,不影响标志位
PIC单片机常用指令

LIST P=16C71TEMPC EQU0CH;定義通用寄存器TEMPD EQU0DHTEMPE EQU0EHPABUF EQU20HPBBUF EQU21HCOUNT EQU0FH;計數寄存器MSDTIME EQU10H;高2位顯示數寄存器LSDTIME EQU11H;低2位顯示數寄存器;FLAG EQU12H;定義FLAG寄存器位KEYHIT EQU0DEBNCEON EQU1NOENTER EQU2SERVKEY EQU3ADOVER EQU4;A/D轉換溢出標志位;DEBNCE EQU13H;去抖動計數器EQU14HEQU15H;放通道數EQU16H;4通道A/D結果地址(16H-19H);H-BYTE EQU20H;二進制結果高位寄存器L-BYTE EQU21H;二進制結果低位寄存器R0EQU22H;最高位BCD數寄存器R1EQU23HR2EQU24H;最低位BCD數寄存器COUNT EQU26HTEMP EQU27HWBUFFER EQU2FH;W緩沖寄存器SBUFFER EQU2EH;STATUS緩沖寄器PCL EQU2;INCLUDE"P16CXX,EQU";ORG0GOTO START;ORG4;中斷向量MOVWF WBUFFER;將W內容存入緩沖器(保護現場)SWAPF WBUFFERSWAPF STATUS,WMOVWF SBUFFER;將STATUS內容存入緩沖器CALL SERV-INT;進行中斷處理SWAPF SBUFFER,WMOVWF STATUS;恢復STATUS(恢復現場)SWAPF WBUFFER,W;恢復W內容RETFIE;START;主程序開始CALL INPORTS;I/O口初始化CALL INAD;A/D初始化CALL INTIMERS;定時器初始化LOOP BTFSC FLAG,;要進行鍵處理否?CALL SERVICEKEY;是,進行鍵處理BTFSC FLAG,ADOVER;A/D轉換完否?CALL SERVICEAD;是,進行A/D數據處理GOTO LOOP;否,循環等待;SERVICEKEY;鍵處理子程序BCF FLAG,;清按鍵標志MOVF NEWKEY,W;取鍵值SUBLW3;判健值>3否?BTFSS STATUS,C;小於3則跳轉RETURN;大於3返回MOVF NEWKEY,WMOVWF DISPCH;更新通道LOADMOVLW ADTABLE;取A/D結果數據表的首地址ADDWF NEWKEY,W;加偏移量MOVWF FSR;存入FSR寄存器MOVF INDF,W;取A/D值MOVWF L-BYTECLRF H-BYTECALL B2-BCDMOVF R2,W取低兩位顯示值MOVWF LSDTIME;存入低2位顯示數寄存器MOVF R1,W取高兩位顯示值MOVWF MSDTIME;存入高2位顯示數寄存器RETURN;;存A/D結果(0通道->ADTABLE,1通道->工ADTABLE+1,…)SERVICEADMOVF ADCON0,W;讀ADCON0MOVWF TEMPC;存入TEMPCMOVLW B'00001000';選下一個通道ADDWF ADCON0,WBTFSC ADCON0,5;通道數<=3否?MOVLW B'11000000';否,重選0通道MOVWF ADCON0MOVLW ADTABLEMOVWF FSR;A/D結果數據表首址-->FSRRRF TEMPCRRF TEMPCRRF TEMPC,W;通道數-->WANDLW3;屏蔽高6位ADDWF FSR;加偏移量至數據表MOVF ADRES,W;取A/D結果MOVWF INDF;存入FSR指定的寄存器BCF FLAG,ADOVER;清A/D溢出標志CALL LOAD RETURN ;INPORTS;I/O 口初始化BSF STATUS,RP0;選寄存器區1MOVLW 3MOVWF ADCON1;設置RA <0~3>為數字 I /O 口CLRF TRISA ;設置RA <0~4>為輸出CLRF TRISB ;設置RB <0~7>為輸出BCF STATUS,RP0;選寄存器區0CLRF RA CLRF RB ;置所有輸出口為低□電平BSF RA,3;使能最高顯示數字位RETURN ;CLRF MSDTIME ;清高位寄存器CLRF LSDTIME ;清低位寄存器CLRF DISPCH ;選通道0CLRF FLAG ;清標志BSF STATUS,RP0;選寄存器區1MOVLW B'0000100'MOVWF OPTION_R ;設RTCC 分頻比為1:32BCF STATUS,RP0;選寄存器區0MOVLW B'00100000';允許RTCC 中斷MOVWF INTCON MOVLW .96;設RTCC 初值MOVWF RTCC ;開始計時RETFIE ;SERV_INTBTFSC INTCON,RTIF ;是RTCC 中斷否?GOTO SERVRTCC ;是,進行中斷處理CLRF INTCON ;清中斷寄存器BSF INTCON,RTIF RETURN ;SERVRTCCMOVLW .96MOVWF RTCC ;設RTCC 初值BCF INTCON,RTIF ;清中斷標志BTFSC RA,0CALL SCANKEYS ;掃描鍵盤BTFSC RA,3CALL SAMPLEAD CALL DISPLAY ;進行數據顯示RETURN ;BTFSS FLAG,DEBNCEO N ;清抖動否?GOTO SCAN1;否,轉SCAN1INTIMERS ;內部振蕩,RTCC 預分頻比1:32,RTCC 每5ms 中斷一次SCANKEYS ;4*4鍵盤矩陣掃描,鍵值(0~F)-->NEWKEY,掃描速率20ms(4.069MHz)DECFSZDEBNCE ;DEBNCE 內容減1RETURNBSFFLAG,DEBNCEO N ;清DEBNCEON 位RETURNSCAN1CALLSAVEPORTS ;存I/O 口值MOVLWB'11101111'MOVWFTEMPD SCANNEXT MOVFRB,W ;讀RB 口值BCFINTCON,RBIF ;清RB 口中斷標志位RRFTEMPD ;TEMPD 內容右移BTFSSSTATUS,C ;是否有進位位?GOTONOKEY ;無,轉NOKEY MOVFTEMPD,W ;有,讀輸出數MOVWFRB ;送RB 口輸出NOPBTFSSINTCON,RBIF ;RB 口電平變化否?GOTOSCANNEXT ;無,轉SCANNEXT BTFSCFLAG,KEYHIT ;有,鍵釋放否?GOTOSKRETURN ;沒有,轉SKRETURN BSFFLAG,KEYHIT ;是,設釋放標志位SWAPFRB,W ;取RB 口數MOVWFTEMPE ;存入TEMPE 寄存器CALLKEYVALUE ;取健值MOVWFNEWKEY ;鍵值存入NEWKEY 寄存器BSFFLAG,SERVKEY BSFFLAG,DEBNCEO N ;設置FLAG 的標志位MOVLW4MOVWFDEBNCE ;裝入消抖動初值SKRETURN CALLRESPORTS ;存儲 I/O 口值RETURN;NOKEY BCFFLAG,KEYHIT ;清KEYHIT 標志位GOTOSKRETURN KEYVALUECLRFTEMPC BTFSSTEMPD,3;檢測第一列GOTOROWVALEND INCFTEMPC BTFSSTEMP,2;檢測第二列GOTOROWVALEND INCFTEMPC BTFSSTEMPD,1;檢測第三列GOTOROWVALEND INCFTEMPC ROWVALENDBTFSSTEMPE ,0;是第一行否?GOTOGETVALCOM ;是,取0,1,2,3BTFSSTEMP ,1;是第二行否?GOTOGET4567;是,取4,5,6,7BTFSS TEMPE ,2;是第三行否?GOTO GET89AB;是,取8,9,A,BGETCDEF BSF TEMPC,2;設置最高位GET89AB BSF TEMPC,3GOTO GETVALCOMGET4567BSF TEMPC,2GETVALCOM MOVF TEMPC,WADDWF PCLRETLW0HRETLW1HRETLW2HRETLW3HRETLW4HRETLW5HRETLW6HRETLW7HRETLW8HRETLW9HRETLW0AHRETLW0BHRETLW0CHRETLW0DHRETLW0EHRETLW0FHSAVEPORTS ;在鍵盤掃描期間保存RA口和RB口狀態MOVF RA,W;讀RA口數值MOVWF PABUF;存入緩沖器CLRF RA;禁止所有的接收MOVF RB,W;讀RB口數值MOVWF PBBUF;存入緩沖器MOVLW0FFH;使RB口全部輸出高電平MOVWF RBBSF STATUS,RP0;選寄存器區1BCF OPTION R,7;RB口弱上拉使能MOVLW B'11110000'MOVWF TRISB;設置RB口高4位輸入,低4位輸出BCF STATUS,RP0;選寄存器區0RETURNRESPORTS ;在鍵盤掃描後恢復RA口和RB口狀態MOVF PBBUF,W;取RB口數值MOVWF RBMOVF PABUF,W;取RA口數值MOVWF RABSF STATUS,RP0BSF OPTION-R,7;關閉RB口弱上拉CLRF TRISA;設置RA口為輸出CLRF TRISB;設置RB口為輸出BCF STATUS,RP0RETURN;DISPLAY MOVF RA,W;送接收數到WCLRF RA;禁止所有數據接收ANDLW0FH;屏蔽高4位MOVWF TEMPC;存接收值到TEMPCBSF TEMPC,4;預置最低顯示數RRF TEMPC;右移取下一位BTFSS STATUS,C;進位位C=1?BCF TEMPC,3;否,重置低顯示位BTF SCTEMPC,0;是否最高位?GOTO UPDATAMSD;是,取最高位值BTFSC TEMPC,1;是否第3位GOTO UPDATA3LED;是,取第3位值BTFSC TEMPC,2;是否第2位GOTO UPDATA2LED;是,取第2位值UPDATALSDMOVF LSDTIME,W;最低數送WANDLW0FH;屏蔽高4位GOTO DISPLAYOUT;數據顯示UPDATA2LEDSWAPF LSDTIME,W;第2位數送WANDLW0FHGOTO DISPLAYOUTUPDATA3LEDMOVF MSDTIME;第3位數送WANDLW0FHGOTO DISPLAYOUTUPDATAMSDSWAPF MSDTIME,W;最高位數送WANDLW0FHDISPLAYOUTCALL LSDTABLE;取段碼值MOVFWF RB;由RB口輸出顯示MOVF TEMPC,W;取接收值送WMOVFWF RARETURN;LEDTABLEADDWF PCL;加偏移量到PC低位RETLW B'00111111';顯示0的段碼RETLW B'00000110';顯示1的段碼RETLW B'01011011';顯示2的段碼RETLW B'01001111';顯示3的段碼RETLW B'01100110';顯示4的段碼RETLW B'01101101';顯示5的段碼RETLW B'01111101';顯示6的段碼RETLW B'00000111';顯示7的段碼RETLW B'01111111';顯示8的段碼RETLW B'01100111';顯示9的段碼RETLW B'01110111';顯示A的段碼RETLW B'00111100';顯示B的段碼RETLW B'00111001';顯示C的段碼RETLW B'01011110';顯示D的段碼RETLW B'01111001';顯示E的段碼RETLW B'01110001';顯示F的段碼;INAD MOVLW B'11000000';選內部RC振蕩MOVWF ADCON0RETURN;SAMPLEADCALL SAVEPORTSCALL DOAD;進行A/D轉換ADDONE BTFSC ADCON0,2;A/D轉換完否GOTO ADDONE;沒完則循環等待BSF FLAG,ADOVER;設置A/D溢出標志CALL RESPORTS;恢復I/O口狀態RETURN;DOAD CLRF RB;滅LED顯示BSF STATUS,RP0MOVLW0FHMOVWF TRISA;設置RA口低4位輸入BCF STATUS,RP0BSF ADCON0,0;啟動A/DMOVLW0.125CALL WAIT;等待BSF ADCON0,2;置A/D結束標志RETURN;WAIT MOVWFNEXT DECFSZGOTORETURN;B2-BCD BCF STATUS,0;清進位位MOVLW0.16MOVWF COUNT;設計數器初值CLRF R0CLRF R1CLRF R2LOOP16RLF L-BYTERLF H-BYTERLF R2RLF R1RLF R0DECFSZ COUNTGOTO ADJDEC;十進制轉BCD碼RETLW0;ADJDEC MOVLW R2MOVWF FSRCALL ADJBCD;調轉BCD碼子程序;MOVLW R1MOVWF FSRCALL ADJBCD;調轉BCD碼子程序;MOVLW R0MOVWF FSRCALL ADJBCD;調轉BCD碼子程序;GOTO LOOP16;ADJBCD MOVLW3ADDWF INDF,WMOVWF TEMPBTFSC TEMP,3;測試低4位結果>7否?MOVWF INDFMOVLW30ADDWF INDF,WMOVWF TEMPBTFSC TEMP,7;測試高4位結果>7否?MOVWF INDFRETLW0;END。
PIC12C5XX 指令集及程序设计技巧

PIC12C5XX 指令集及程序设计技巧MCV08A 与之前的PIC12F509A 是完全一样,性价比更优越,主要是想收覆被台湾品牌占据的市场,与竟争的型号有:EMC78p153,8PS53§2.1 PIC12C5XX 指令概述PIC12C5XX 每条指令长12位,指令由操作码和操作数组成。
PIC12C5XX 共有33条指令,按操作分成三大类: 1、面向字节操作类 2、面向位操作类3、常数操作和控制操作类。
全部指令如表2.1所示。
面向字节操作类指令(11-6) (5) (4-0)OPCODE d f (FILE#)二进制代码 HEX 名称 助记符,操作数 操作状态影响注00000000 0000 000 空操作 N OP无0000001f ffff 02f W 送到f MOVWF f W →f无 1,400000100 0000 040 W 清零 CLRW - 0→W Z0000011f ffff 06f f 清零 CLRF f 0→fZ 4000010df ffff 08f f 减去W SUBWF f ,d f-W →dC ,DC ,Z1,2,4000011df ffff 0Cf f 递减 DECF f ,d f-1→dZ 2,4000100df 10f W 和f 做或运IORWF f ,d W ∨f →Z 2,4ffff 算 d 000101df ffff 14f W 和f做与运算 ANDWF f ,d W ∧f →d Z2,4000110df ffff 18f W 和f做异或运算XORWF f ,d W 〇f →dZ 2,4000111df ffff 1Cf W 加f ADDWF f ,d W+f→dC ,DC ,Z1,2,4001000df ffff 20f 传送f 到d MOVF f ,d f →dZ 2,4001001df ffff 24f f 取补 COMF f ,d f →dZ 2,4001010df ffff 28f f 递增 INCF f ,d f+1→dZ 2,4001011df ffff 2Cf f 递减,为0则跳DECFSZ f ,df-1→d ,skip ifzeroZ 2,4001100df ffff 30f f 循环右移 RRF f ,d f(n)→d(n-1),f(0)→C ,C →d(7)C2,4001101df ffff 34f f 循环左移 RLF f ,d f(n)→d(n+1),f(7)→C ,C →d(0)C2,4001110df ffff 38f f 半字节交换 SWAPF f ,df(0.3)←→f(4-7)→dZ 2,4001111df ffff 3Cf f 递增,为0则跳INCFSZ f ,df+1→d ,skip ifzeroZ 2,4面向位操作类指令 (11-8) (7-5) (4-0)OPCODE b (BIT#) f (FILE#)二进制代码 HEX 名称 助记符,操作数 操作状态影响注0100bbbf ffff 4bf 清除f的位bBCF f ,b 0→f (b )Z 2,40101bbbf ffff 5bf 设置f的位bBSF f ,b 1→f (b )Z 2,40110bbbf ffff 6bf 测试f的位b ,为0则跳 BTFSC f ,b Test bit(b) infile(f):Skip if clearZ0111bbbf ffff 7bf 测试f的位b ,为0则跳 BTFSS f ,b Test bit(b) infile(f):Skip if clearZ常数操作和控制操作类指令(11-8) (7-0)OPCODE k (LITERAL )二进制代码 HEX 名称 助记符,操作数 操作状态影响注00000000 0010 002 写OPTION 寄存器OPTION - W →OPTION register无00000000 0011 003 进入睡眠状态 SLEEP -0→WDT ,stoposcillatorTO ,PD00000000 0100 004 清除WDT 计时器CLRWDT - 0→WDT(andprescaler ,if assigned)TO ,PD00000000 00f 设置I/O 状TRIS f W →I/O controlregister f无 30fff 态 1000kkkk kkkk 8kk 子程序带参数返回RETLW k k →W ,Stack →PC 无1001kkkk kkkk 9kk 调用子程序 CALL k PC+1→Stack ,K →PC无1101kkkkk kkkk Akk 跳转(K为9位)GOTO k k →PC(9 bits) 无1100kkkk kkkk Ckk 常数置入WMOVLW k k →WZ1101kkkk kkkk Dkk 常数和W 做或运算 IORLW k k ∨W →W Z1110kkkk kkkk Ekk 常数和W 做与运算 ANDLW k k ∧W →W Z1111kkkk kkkk Fkk 常数和W 做异或运算XORLW k k ○W →W Z表2.1 PIC12C5XX 指令集注:1、除GOTO 指令外,任何有关写PC (F2)的指令(例如 CALL 、MOVWF 2)都将会把PC 寄存器的第9位清零。
单片机架构分类

单片机架构分类
单片机架构可以根据不同的特点进行分类,以下是几种常见的单片机架构分类:
1. 型号分类:根据单片机所属的厂商和型号来进行分类,例如8051系列、AVR系列、PIC系列等。
2. CISC架构(复杂指令集计算机) vs RISC架构(精简指令集计算机):CISC架构的指令集更为丰富复杂,适合执行复杂的操作,而RISC架构则更注重指令简洁高效,适用于高性能应用。
3. Harvard架构 vs von Neumann架构:Harvard架构中指令和数据分别存储在不同的存储器中,可以同时进行取指令和执行数据操作,而von Neumann架构中指令和数据存储在同一存储器中,不可以同时进行取指令和执行数据操作。
4. 8位架构 vs 16位架构 vs 32位架构:根据单片机的数据宽度来进行分类,通常数据宽度越宽,单片机的处理能力越强。
5. 多核架构:现代的单片机中,有些采用多核架构,通过多个处理核心来提高并行处理能力,例如ARM Cortex-M4F系列。
以上仅是常见的单片机架构分类,实际上还有很多其他的分类方法,例如时钟速度、内存容量等等。
不同的架构适用于不同类型的应用领域,选择合适的单片机架构需要考虑具体的应用需求。
PIC汇编语言指令

PIC 8位单片机共有三个级别,有相对应的指令集。
基本级PIC系列芯片共有指令33条,每条指令是12位字长;中级PIC系列芯片共有指令35条,每条指令是14位字长;高级PIC系列芯片共有指令58条,每条指令是16位字长。
其指令向下兼容。
一、PIC汇编语言指令格式PIC系列微控制器汇编语言指令与MCS-51系列单片机汇编语言一样,每条汇编语言指令由4个部分组成,其书写格式如下:标号操作码助记符操作数1,操作数2;注释指令格式说明如下:指令的4个部分之间由空格作隔离符,空格可以是1格或多格,以保证交叉汇编时,PC机能识别指令。
1标号与MCS-51系列单片机功能相同,标号代表指令的符号地址。
在程序汇编时,已赋以指令存储器地址的具体数值。
汇编语言中采用符号地址(即标号)是便于查看、修改,尤其是便于指令转移地址的表示。
标号是指令格式中的可选项,只有在被其它语句引用时才需派上标号。
在无标号的情况下,指令助记符前面必须保留一个或一个以上的空格再写指令助记符。
指令助记符不能占用标号的位置,否则该助记符会被汇编程序作标号误处理。
书写标号时,规定第一字符必须是字母或半角下划线“—”,它后面可以跟英文和数字字符、冒号(:)制符表等,并可任意组合。
再有标号不能用操作码助记符和寄存器的代号表示。
标号也可以单独占一行。
2操作码助记符该字段是指令的必选项。
该项可以是指令助记符,也可以由伪指令及宏命令组成,其作用是在交叉汇编时,“指令操作码助记符”与“操作码表”进行逐一比较,找出其相应的机器码一一代之。
3操作数由操作数的数据值或以符号表示的数据或地址值组成。
若操作数有两个,则两个操作数之间用逗号(,)分开。
当操作数是常数时,常数可以是二进制、八进制、十进制或十六进制数。
还可以是被定义过的标号、字符串和ASCⅡ码等。
具体表示时,规定在二进制数前冠以字母“B”,例如B;八进制数前冠以字母“O”,例如O257;十进制数前冠以字母“D”,例如D122;十六进制数前冠以“H”,例如H2F。