sth汇编命令(表示转述命令和请求的句型)

本文目录
表示转述命令和请求的句型
一、注意所使用的动词.
英语常用的表示命令、请求和建议的动词有advise,ask,invite,order,remind,request,tell,warn等.
二、注意这些动词所要求的句型.
下面我们先来看上述动词的具体用法:
1.advise vt.劝告;建议
My mother advised me to wear my best clothes.我妈妈建议我穿上最好的衣服.2.ask vt.请求;邀请
I asked them to come to my house for dinner.我请他们来我家吃饭.
3.invite vt.邀请
Lisa invited us to come to her party.Lisa邀请我们参加她的聚会.
4.order vt.命令;指挥
They ordered him not to stop.他们命令他不要停下.
5.remind vt.使想起;提醒
Remind me to write to Mother.请提醒我给妈妈写信.
6.request vt.要求;请求
We request the visitors not to pick the flowers.我们要求参观者不要摘花.
7.tell vt.告诉;告诫;命令;警告
I told you not to do it.我叫你不要做这个.
8.warn vt.警告;告诫(常与of连用) 指对于确实的危险所作的警告,具有命令的意思.
She was warned not to come in the room.她被警告不得进入那间屋子.
由此可见,上述动词作谓语时有一个共同的特点,即都可以使用如下句型:
advise / ask / invite / order / remind / request / tell / warn sb.to do sth.建议/要求/邀请某人做某事.如果是否定句,则在to前加not.在这个句型中,不定式作宾语补足语.
三、注意由直接引语变为间接引语句子的方法.
要注意直接说的话(称为直接引语)与转述的话(称为间接引语)在表达上是不一样的.由于表示的是命令、请求和建议,所以直接说的话多用祈使句式.
1.肯定句的变法
Please read English in the morning,Jim,said Miss Liu.→ Miss Liu asked Jim to read English in the morning.
2.否定句的变法
Don’t talk in class,Mr Green warned me.→Mr Green warned me not to talk in class.
简易电子琴用汇编程序
看看这个程序适用您不?
KEYBUF EQU 30H
STH0 EQU 31H
STL0 EQU 32H
TEMP EQU 33H
ORG 00H
LJMP START
ORG 0BH
LJMP INT_T0
START: MOV TMOD,#01H
SETB ET0
SETB EA
WAIT:
MOV P3,#0FFH
CLR P3.4
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JZ NOKEY1
LCALL DELY10MS
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JZ NOKEY1
MOV A,P3
ANL A,#0FH
CJNE A,#0EH,NK1
MOV KEYBUF,#0
LJMP DK1
NK1: CJNE A,#0DH,NK2
MOV KEYBUF,#1
LJMP DK1
NK2: CJNE A,#0BH,NK3
MOV KEYBUF,#2
LJMP DK1
NK3: CJNE A,#07H,NK4
MOV KEYBUF,#3
LJMP DK1
NK4: NOP
DK1:
MOV A,KEYBUF
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,KEYBUF
MOV B,#2
MUL AB
MOV TEMP,A
MOV DPTR,#TABLE1
MOVC A,@A+DPTR
MOV STH0,A
MOV TH0,A
INC TEMP
MOV A,TEMP
MOVC A,@A+DPTR
MOV STL0,A
MOV TL0,A
SETB TR0
DK1A: MOV A,P3
ANL A,#0FH
XRL A,#0FH
JNZ DK1A
CLR TR0
NOKEY1:
MOV P3,#0FFH
CLR P3.5
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JZ NOKEY2
LCALL DELY10MS
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JZ NOKEY2
MOV A,P3
ANL A,#0FH
CJNE A,#0EH,NK5
MOV KEYBUF,#4
LJMP DK2
NK5: CJNE A,#0DH,NK6
MOV KEYBUF,#5
LJMP DK2
NK6: CJNE A,#0BH,NK7
MOV KEYBUF,#6
LJMP DK2
NK7: CJNE A,#07H,NK8
MOV KEYBUF,#7
LJMP DK2
NK8: NOP
DK2:
MOV A,KEYBUF
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,KEYBUF
MOV B,#2
MUL AB
MOV TEMP,A
MOV DPTR,#TABLE1
MOVC A,@A+DPTR
MOV STH0,A
MOV TH0,A
INC TEMP
MOV A,TEMP
MOVC A,@A+DPTR
MOV STL0,A
MOV TL0,A
SETB TR0
DK2A: MOV A,P3
ANL A,#0FH
XRL A,#0FH
JNZ DK2A
CLR TR0
NOKEY2:
MOV P3,#0FFH
CLR P3.6
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JZ NOKEY3
LCALL DELY10MS
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JZ NOKEY3
MOV A,P3
ANL A,#0FH
CJNE A,#0EH,NK9
MOV KEYBUF,#8
LJMP DK3
NK9: CJNE A,#0DH,NK10
MOV KEYBUF,#9
LJMP DK3
NK10: CJNE A,#0BH,NK11
MOV KEYBUF,#10
LJMP DK3
NK11: CJNE A,#07H,NK12
MOV KEYBUF,#11
LJMP DK3
NK12: NOP
DK3:
MOV A,KEYBUF
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,KEYBUF
MOV B,#2
MUL AB
MOV TEMP,A
MOV DPTR,#TABLE1
MOVC A,@A+DPTR
MOV STH0,A
MOV TH0,A
INC TEMP
MOV A,TEMP
MOVC A,@A+DPTR
MOV STL0,A
MOV TL0,A
SETB TR0
DK3A: MOV A,P3
ANL A,#0FH
XRL A,#0FH
JNZ DK3A
CLR TR0
NOKEY3:
MOV P3,#0FFH
CLR P3.7
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JZ NOKEY4
LCALL DELY10MS
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JZ NOKEY4
MOV A,P3
ANL A,#0FH
CJNE A,#0EH,NK13
MOV KEYBUF,#12
LJMP DK4
NK13: CJNE A,#0DH,NK14
MOV KEYBUF,#13
LJMP DK4
NK14: CJNE A,#0BH,NK15
MOV KEYBUF,#14
LJMP DK4
NK15: CJNE A,#07H,NK16
MOV KEYBUF,#15
LJMP DK4
NK16: NOP
DK4:
MOV A,KEYBUF
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,KEYBUF
MOV B,#2
MUL AB
MOV TEMP,A
MOV DPTR,#TABLE1
MOVC A,@A+DPTR
MOV STH0,A
MOV TH0,A
INC TEMP
MOV A,TEMP
MOVC A,@A+DPTR
MOV STL0,A
MOV TL0,A
SETB TR0
DK4A: MOV A,P3
ANL A,#0FH
XRL A,#0FH
JNZ DK4A
CLR TR0
NOKEY4:
LJMP WAIT
DELY10MS:
MOV R6,#10
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
INT_T0:
MOV TH0,STH0
MOV TL0,STL0
CPL P1.0
RETI
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H
TABLE1: DW 64021,64103,64260,64400
DW 64524,64580,64684,64777
DW 64820,64898,64968,65030
DW 65058,65110,65157,65178
END
求关于be to do sth的用法和意思
1、表示安排,意向或目的。
例句:The U. S. President is to visit China.美国总统将访问中国。
2、(表义务)应该做……,必须做……
例句:You are to be back by six o’clock.你要在6点之前回来
3、(表可能)会做……
例句:How am I to know what has become of him?我怎么知道他的遭遇如何?
4、注定(通常用过去时)
例句:He came to power,but was to pay dearly for it,soon he was killed.他得到了权力,但是为此付出了昂贵的代价,不久他就被暗杀了。
5、(用于If...were to do句型)如果……的话
例句:If you were to succeed,be sure to make full use of your time. 你如果想成功,就得充分利用时间。
扩展资料:
表将来的特殊形式:
1、be going to do表示打算去做成可能发生某事
2、be to do表示计划好做某事
3、be about to do表示既将(正要)做某事,要友生的动作,其后不接具体的时间状语
4、go , come , leave,arrive等少数转移性不及物动词的现在进行时表示按计划、妥排即将发生的动作,并不那么“固定”
5、leave, open等词的一般现在时可表示“按照时刻表或日程安排发生某事”
let sb do还是let sb to do
它们的区别是:只有Let sb. do sth.这个形式,let sb to sth是不对的。
Let sb. do sth.
释义:让某人做某事。
语法:
1.let sb.do sth.是祈使句,用于表达命令、请求、劝告、警告、禁止等的句子。
2.最常用于表达命令,因此在学校文法中也常称为命令句。
3.let是使役动词,接宾语后,接动词原形(不带to的动词不定式)。
例句:They let me enter the house. 他们允许我进入房子。
扩展资料Let sb do sth的近义词:make sb do sth、ask sb to do sth、tell sb to do sth
一、let和make的句型相同,都是:let/make somebody do something,只是意思有别。前者带有“许可”之意,后者带有“使令”之意。或者说,前者有请求而被“允许”,后者无请求而被“强制”。
let的含义是:If you let someone do something, you give them your permission to do it.
They let me enter the house. 意思是,我请求进入房子,他们允许了。
make的含义是:If you make someone do something, you force them to do it.
They made me enter the house. 意思是,不管我愿意不愿意,他们使我进入房子。
二、ask sb to do sth
释义:要求某人做某事的意思。
语法:Ask sb, esp politely, in speech or writing to do sth.(以口头或书面形式)要求,(尤指)请求某人做某事
三、tell sb to do sth
释义:告诉某人去做某事。
语法:在这里,动词不定式作宾语补足语:动词+宾语+不定式(to do)。
用汇编语言解释if语句
假如c语言程序如下:
short a=1;
if (a》1) {
//do sth No.1
} else if (a==1) {
//do sth No.2
} else if (a《1) {
//do sth No.3
}
答案应该是这样的
MOV AX,A
CMP AX,1
JNZ NO1;不等于1
;等于1的程序段
JMP OUT
NO1:CMP AX,1
JL XIAOYU
;大于1的程序段
JMP OUT
XIAOYU: ;小于1的程序段
OUT:
HC08传送类指令操作对CCR的影响如何
可以说没什么影响`M68HC08指令系统
计算机的指令系统是一套控制计算机操作的编码,称之为机器语言。计算机只能识别和执行机器语言的指令,机器语言指令是随计算机系统的不同而不同的。为了容易为人们所理解,便于记忆和使用,通常用符号指令(即汇编指令)来表示计算机的指令。这一章我们以M68HC08的汇编指令来分析M68HC08的指令系统功能和使用方法。
1 指令格式
1.1 汇编指令格式
M68HC08汇编指令由操作码助记符字段和操作数字段所组成,指令的格式如下:
操作码[操作数1],[操作数2],[操作数3]
第一部分“操作码”助记符,由2-5个英文字母组成,例如LD、MOV、DBNXZ、BRSET等。
第二部分为“操作数”字段,根据指令功能的不同,操作数可以有一个、二个、三个或者没有(例如空操作指令NOP)。
操作码与操作数之间以空格分隔,操作数和操作数之间用“,”号分开。指令前可以加标号,标号代表这条指令的起始存储地址,指令后可以加注释,注释以“;”号开始,一行指令以回车符结束。例如:
STRT:MOV#FF,DORA;PTA编程为输出口中
1.2 常用伪指令
一、定位伪指令
格式:ORG地址
“地址”可以十六进数(以$开头)或十进制表示,该伪指令给出以下的程序或数据的起始存储地址。
例如:ORG $C000
则该伪指令下面的程序或常数存放在$C000开始的存储器中。
二、定义字节常数伪指令
格式:FCB X1、X2、X3,…Xn
定义程序区中的字节常数,Xi是单字节常数也可以是用单引号括起来的字符串(这时定义ASCII码),每个字节为一个字符。
例如:ORG $8000
FCB $3F, $61
则在Flash的$8000、$8001两个单元定义了两个常数$3F、$61。利用字节定义伪指令可以在程序存储器中定义常数表,如显示器的字形数据表等。
三、定义字常数伪指令
格式:FDB Y1、Y2、…Ym
定义程序区中字(双字节)常数,高位字节在前,低位字节在后,Yi用十六进制或十进制数表示。
例如:ORG $FFFE
FDB $8000
则在$FFFE、$FFFF定义了一个字常数,$80存储在$DDDW单元,而$FFFF单元存储$0。利用FDB指令可以定义复位和中断向量。
1.3 符号说明
M68HC08汇编程序允许使用标准的M68HC08汇编指令和多种伪指令(详见§7.1M68HC08汇编使用方法)。
为了以下说明和分析指令的方便,我们对常用的符号作简单说明。
一、功能性符号
·( )寄存器或存储单元的内容;
·←数据传送的方向;
·↑表示退栈;
·↓表示进栈;
·&表示逻辑或;
·○+表示逻辑异或;
·×乘;
·÷除;
·+加;
·-减;
·:表示连成双字节;
·《表示扩展为有符号的16位数。
二、寄存器或存储单元符号
·A累加器;
·CCR条件码寄存器;
·H变址寄存器高8位;
·X变址寄存器低8位;
·PC程序计数器;
·PCH程序计数器的高8位;
·PCL程序计数器的低8位;
·SP堆栈指针;
·M存储器地址或数据(视寻址方式而定)
·rel相对偏移量(表示有符号的8位二进制数)。
三、位标识符号
·V溢出标志位;
·H半进位;
·I中断屏蔽位;
·N负标志位;
·Z零标志位;
·C进位/借位。
四、对条件码寄存器影响:
·-无影响;
·0:清“零”;
·:根据结果置“1”或清“零”。
五、机器码标志
·dd:$00XX的低8位地址;
·ee:16位偏移量地址;
·ff:16位偏移量低8位或8位偏移量;
·ii:单字节立即数;
·ll:16位扩展寻址低8位;
·rr:相对偏移量。
六、源操作数标志
·OPR:操作数,一个或两个字节,由操作方式确定;
·rel:相对偏移量。
七、寻址方式
·INH:隐含寻址;
·IMM:8位立即数寻址;
·DIR:8位直接地址寻址;
·EXT:16位扩展寻址;
·IX:16位变址无偏移量;
·IX1:16位变址8位偏移量;
·IX2:16位变址,16位偏移量;
·IX+:16位变址,无偏移量,变址寄存器加1;
·IX1+:16位变址,8位偏移量,变址寄存器加1;
·rel:8位相对寻址;
·DD:直接寻址;
·IMD:立即寻址,直接寻址;
·IX+D:16位变址,直接寻址,变址寄存器加1;
·DIX+:直接寻址,16位变址,变址寄存器加1;
·SP1:堆栈指针寻址,8位偏移量;
·SP2:堆栈指针寻址,16位偏移量。
2 寻址方式
指令给出操作数或产生操作数有效地址(EA)的方式称为寻址方式。根据寻址方式,CPU就可以取得操作数。M68HC08比M68HC05增加了8种寻址方式,使程序员能选择最合适的寻址方式来优化程序,达到缩短程序长度、提高运行速度的目的。下面分别介绍M68HC08指令系统的寻址方式。
一、隐含寻址
无操作数或操作数隐含在操作码字节中。
例如:NOP ;无操作数
CLRA ;清零累加器
一般只能访问CPU寄存器。
二、立即数寻址
操作数包含在指令操作码后面的一个或两个字节中。
例如:LDA # $10 ;80H—A
LDHX# $8100;81H—H,0—X
M68HC08指令系统中,数字前加$表示十六进制数,加%表示二进制数,无前缀表示十进制数,指令的数据前加#表示立即数。
三、直接寻址
操作数的有效地址EA包含在指令操作码后续字节中。直接寻址的有效地址在指令的地址段中只指出低8位的值,高8位固定为零,即EA=$00XX。这种寻址方式只能访问零页的I/O寄存器或RAM。
例如:INC $50 ;(50H)+1→50H单元
四、扩展寻址
扩展寻址方式中,操作数的16位有效地址EA在指令操作码的后面两个字节中。实际
上也是一种直接寻址方式。因为有效地址为16位,可以访问64K字节存储空间的任意单元。
例如:JMP $C100 ;$C100→PC,CPU转至$C100执行程序
LDA $8120;(8120H) →A
在使用M68HC08汇编时,用户不必考虑指令是用直接寻址还是扩展寻址。汇编程序自动根据指令中有将地址值取直接寻址或扩展寻址方式。
五、变址寻址无偏移量
这是一种间接寻址方式,操作数的有效地址EA的高8位在H寄存器中,低8位在X寄存器中。这种寻址方式可以访问64K字节存储空间的任意单元。
例如:DEC,X;(HX)—1→(HX)单元
六、变址8位移量
操作数的有效地址为(H:X)加上无符号的8位偏移量。这种寻址方式可用于查表,从n个元素的表中选择第k个元素,k在变址寄存器中,表格的首地址为8位偏移量。
例如:LDA $50,X;(HX)+$50) →A
七、变址16位偏移量
操作数的有效地址为(H:X)加上无符号的16位偏移量,类似于变址8位偏移量,可用于查表和程序散转。例如:
FMP KTAB,X
KTAB JMP PGM0
JMP PGM1
根据(HX)的不同转移到不同的地方。
八、堆栈指针8位偏移量
操作数的有效地址是(SP)加上无符号的8位偏移量。这种变址8位移量寻址方式相似。这种寻址方式主要方便对堆栈的操作。若系统中不用中断,SP可以作为第二变址寄存器。例如:
LDA $10,SP ;(SP)+$100) →A
九、操作数有效地址为(SP)加上16位无符号的偏移量,类似于变址16位偏移量的寻址方式。
LDA $100,SP ;((SP)+$100)→A
十、相对寻址
相对寻址只用于转移指令和子程序调用指令,转移的有效地址为当前PC值加上8位带符号的偏移量,偏移量位于操作码后面的字节中。在使用M68HC08汇编时程序员不必计算偏移量值,只要用标号表示转移的目标地址,汇编程序自动计算偏移量,偏移量为-128~+127,超出这个范围,汇编会报错。例如:
BCC MLP1 ;C=0转MLP1,相对寻址
INC A ;(A)+1→A
BRA MLP2 ;转MLP2,相对寻址
MLP1: CLRA
MLP2: STA ,X
存储器单元和存储器单元之间的数据传送指令,由源操作数和目的操作数不同寻址方式组合得到以下四种寻址方式。
寻址方式
源操作数
目的操作数
例子
功能
十一、IMD
立即数寻址
直接寻址
MOV # $80,$40
S80→$40单元
十二、DD
直接寻址
直接寻址
MOV $80,$40
($80)→$40单元
十三、IX+D
变址,(HX)+1
直接寻址
MOVX+,$40
((HX))→$40单元,(HX)+1
十四、DIX+
直接寻址
变址(HX)+1
MOV $40,X+
($40)→(HX),(HX)+1
十五、变址无偏移量,变址寄存器加1
操作数的有效地址为变址寄存器内容。这是一种间接寻址方式,指令执行后变址寄存器内容加1。例如:
CBEQ X+,rel ;((HX))=(A)转移,(HX)+1→HX
十六、变址8位偏移量,变址寄存器加1
操作数有效地址为变址寄存器内容加上8位无符号偏移量,指令执行后变址寄存器内容加1。例如:
FNNZ $80,X+rel ;($80+(HX)-1不等于0转移;
且(HX)+1→HX
3 M68HC08指令系统
3.1指令类型
一、根据指令周期分类
指令周期反映了指令运行的速度。M68HC08指令周期是以内部总线时钟周期为单位的。指令周期占内部总线时钟周期数按指不同有1,2,3,4,5,6,7,9等几种。若内部总线时钟频率为8MHz,最短的指令周期为125ns,最长的指令周期为1125ns。
二、根据指令字节长度分类
指令字节长度反映了指令的存储效率。M68HC08有单字节指令、双字节指令和3字节指令。
三、根据指令功能分类
根据指令的功能,HC08指令系统可分为以下几类:
①数据传送指令;
②算术运算指令;
③逻辑运算指令;
④位操作指令;
⑤移位指令;
⑥程序转移和控制指令。
3.2数据传送指令
数据传送指令实现CPU寄存器、I/O寄存器、RAM和ROM(或Flash)之间的数据传送,一般情况下指令执行结果只影响CCR的“N”和“Z”标志位。若所传送的数据为零,置“1”Z,否则清零Z;数据最高位为1置“1”N,否则清零N。
一、CPU寄存器取数指令
1.所寻址的单元内容送累加器A
CCR
指令
操作
V
H
I
N
Z
C
寻址方式
总线周期
LDA # opr
LDA opr
LDA opr
LDA opr, X
LDA opr,X
LDA,X
LDA opr, SP
A←(M)
0
—
—
—
IMM
DIR
EXT
IX2
IX1
IX
SP1
2
3
4
4
3
2
4
LDA opr, SP
SP2
5
例如:LDA # $80 ;$80→A
LDA PORTA ;并行口中A输入信息读到A(先用EQU指令定义PORTA)
2.所寻址的单元内容送16位变址寄存器的低8位X,而高8位H的内容保持不变
CCR
指令
操作
V
H
I
N
Z
C
寻址方式
总线周期
LDA # opr
LDA opr
LDA opr
LDA opr, X
LDA opr,X
LDA,X
LDA opr, SP
LDA opr, SP
A←(M)
0
—
—
—
IMM
DIR
EXT
IX2
IX1
IX
SP1
SP2
2
3
4
4
3
2
4
5
3.所寻址的两个单元的16位数据送变址寄存器HX
CCR
指令
操作
V
H
I
N
Z
C
寻址方式
总线周期
LDA # opr
LDA opr
H:X←(M:M+1)
0
—
—
—
IMM
DIR
2
3
这是两条16位数据传送指令,主要用于对变址寄存器HX赋值。例如:
LDHX # $80 ;0→H,$80→X
LDHX $8212 ;($8212) →H,($8213) →X
二、CPU寄存器存储命令
1.累加器A的内容存储到所寻址的单元
例如:STA PORTA ;(A)输出到并行口不PORTA
STA $80,X ;(A)存储到地址为(HX)+$80的单元
2.变址寄存器低8位X的内容存储到所寻址的单元
3.16位变址寄存器的内容存储到所寻址的两个单元
例如:STHX $80;(H)→$80单元(X)→$81单元
三、堆栈操作指令
1.进栈指令
M68HC08的进栈操作是数据先进栈,然后栈指针减1,因此SP指向下一次进栈的地
址单元。不影响标志位。
2.退栈指令
HC08的退栈操作是栈指针SP先加1,然后取(SP)指出栈单元内容。不影响标志位。
四、CPU寄存器之间的的数据传送指令
由上面所列指令及其功能可以看出除TAP指令外,这类指令不影响标志位。
五、存储器单元之间的数据传送指令
这类指令在编程时应注意格式:MOV源操作数,目的操作数。例如:
MOV $50, $60 ;($50)→$60单元
MOV # $80,$60;立即数$80→$60单元
3.3 算术运算指令
一、加法指令
1.不带进位加法指令ADD
累加器A和所寻址的单元内容相加,运算结果送累加器A。影响标志位OV、H、N、Z、C,运算结果满足下列条件时置“1”相应的标志位,否则清零。
OV:(A).7,(M).7=1,而结果最高位(RESOLT7,以R7表示)为0,负数相加溢出;或(A).7=0(M).7=0而结果最高位R7为1,正数相加溢出;
H:相加结果低3位向高4位进位时置“1”;
N:相加结果R7为1时置“1”;
Z:相加结果为零时置“1”;
C:相加时最高产生位进位时置“1”。
2.带进位加法ADC
累加器A、进位标志C、和所寻址的单元内容相加,结果送累加器A。对标志位的影响和ADD指令相同,ADC指令用于实现多字节加法。
3.十进制调整指令
这条指令对累加器中由上一条加法指令(加数和被加数均为压缩BCD码)所得的8位结果(在A)进行十进制调整,使A的内容为BCD码。调整规则如下:
a. (A).3~(A).0大于9或H=1则(A)+$06→A,否则(A).3~(A).0不变;
b. (A).7~(A).4大于9或C=1则(A)+$60→,否则(A).7~(A).4不变;
c. 结束。
例如:(A)=$56 ($50)=$67执行指令:
ADD $50 ;(A)=$BD,(C)=0(A).7~(A).4》9,(A).3~(A).0》9
DAA ;经调整之后(A)=23,(C)1
4.16位变址寄存器加上8位带符号立即数指令
这条指令将补码表示的8位立即数扩展为16位带符号数并和(HX)相加,运算结果送HX,不影响标志位。
5.16位堆栈指针加上8位带符号立即数指令
这条批令将补码表示的8位立即数扩展为16位有符号数并和(SP)相加,结果送SP,不影响标志。
6.加1指令
加1指令不影响标志位C和H,例如:(A)=$FF。
ADD # $1 ;结果(A)=0,(C)=1,(H)=1
INCA ;结果(A)=0,(C)和(H)不变
二、减法指令
1.不带借位减法指令
A的内容减去所寻址单元内容,结果送累加器A,影响V、N、Z、C标志位。满足下列条件置“1”,否则清零。
V:(A).7=1(M).7=0而结果R7=0,为负数减正数溢出;或者(A).7=0(M).7=1而结果R7=1,为正数减负数溢出。这时1→V。
N:相减结果R7=1时,1→N
Z:相减结果为零时,1→Z;
C:相减时最高位产生借位时,1→C。
2.带借位减法指令
A的内容减去C和所寻址单元的内容结果送A,对标志位的影响和SUB指令产生的影响相同。
3.减1指令
对所寻址单元的内容减去1。
减1指令不影响标志位H和C。
4.累加器A的比较指令CMP
A和所寻址的单元内容相比较,实际上是A减去所寻址单元内容,只影响标志位,而不传送减法的结果,即不影响A和寻址单元的内容,对标志位影响和关法指令产生的影响相同。
5.X的比较指令CPX
X和所寻址的单元内容的相比较,只影响标志位,不影响X和所寻址单元内容,对标志位影响和减法指令产生的影响相同。
6.HX的比较指令CPHX
16位变址寄存器HX内容和可寻址的两个单元内容相比较,只影响标志位,不影响HX和可寻址单元内容,对标志位影响和减法指令产生的影响相同。
7.取补指令
0减去所寻址的单元,即所寻址单元的各位取反,然后加1。对V、N、Z、C标志位影响和减法指令产生的影响相同。
8.测试指令
测试所寻址单元的内容是否为零或负数。执行所寻址单元内容减去0的操作,并影响
V、N、Z标志位,不影响原来单元内容。
三、乘法指令
X和A中两个无符号数相乘,积的高8位送X,低8位送A。清零H和C标志,不影响其他标志位。
四、除法指令
(H):(A)中无符号16位数除以(X)中8位无符号数,商→A,余数送H。若商大于$FF或除数为零,置1进位标志C,否则清零标志C。
3.4逻辑运算指令
一、单操作数简单逻辑指令
1.清零指令
清“0”所寻址的单元,0→V、N、1→Z不影响其他标志位。
2.取反指令
对的寻址单元的内容按位取反。
二、双操数逻辑运算指令
1.“逻辑与”指令
累加器A和所寻址的单元内容按位做逻辑与运算,结果选A。结果最高位R7=1置“1“N,否则清零N,结果为零,1→Z,否则0→Z。
按位“逻辑与“操作在两个操作数对应位都为1时,结果对应位才为1,否则对应结果位为0。例如:(A)=$F0则执行指令AND# $0F后(A)=0。
2.“逻辑或”指令
累加器A和所寻址单元内容按位进行逻辑或运算结果送A。
按位逻辑或操作,只有当两个操作数对应位都为零时,结果的对应位才为零,否则为1。例如:(A)=$F0,执行ORA# $0F后则(A)=$FF。
3.“逻辑异或”指令
累加器A和所寻址单元内容按位进行逻辑异或运算,结果送A。
按位逻辑异或就是按位半加。当两个操作数对应位不同时结果对应为1,相同时为0。例如:(A)=$F0,若执行指令EOR# $A0,则(A)=$50。
4.位测试指令
A和所寻址的单元内容逻辑与。但结果不传送,只影响标志位V、N、Z,不影响A和所寻址单元内容。
这些指令用于测试所寻址单元的指定位为零还是1。例如:(A0=$01,执行指令BIT$50后,若Z=0则($50).0=0
3.5位操作指令
一、标志位操作指令
1.对CCR寄存器的I、C置“1“指令
2.对CCR寄存器的I、C清零指令
对标志位I的置“1“和清零就是控制CPU的关中和开中。
二、对零页RAM/IO寄存器的位操作指令
对于零页的RAM单元或IO寄存器,CPU执行位置1和清零指令一样地快速方便。
3.6移位指令
一、逻辑左移指令
所寻址的单元内容左移一位,低位移入0,高位移到C。
二、逻辑右移指令
所寻址的单元内容右移一位,高位移入0,低低移出至C。
三、带进位循环左移指令
所寻址单元的内容带进位循环右移一位,C移入最高位,最低位移出至C。
五、算术左移指令
算术左移指令功能和逻辑左移指令操作相同
六、算术右移指令
将所寻址的单元内有符号的8位数右移一位,符号位保持不变,相当于除2操作。
七、累加器A半字节交换指令
累加器A的高4位和低4位相互交换,不影响标志位。
3.7 程序转移和控制类指令
一、无条件转移指令
1.相对转移指令
2.绝对转移令
绝对转移指令,将所寻址的两个单元内容作为地址送PC,使CPU转到该地址开始执行程序,不影响标志位。
二、条件转移指令
1.测试状态标志条件转移指令
这类指令,根据上一条指令执行结果,测试CCR的标志位状态,若条件满足,执行相对转移指令,若条件不满足,则顺序执行下一条指令,不影响标志位。
若执行有符号减法或比较批令后,CCR相关位与实际两操作数间的关系为:如果CPU内部A或X的内容大于等于所寻址单元内容,则N○+V=0;如果A或X内容大于所寻址单元内容,Z1(N○+V)=0;A或X小于所寻址的单元内则N○+V=1。
执行无符号减法或比较指令后,CCR相关位与实际两操作数间的关系为:如果CPU内部A或X的大于等于所寻址单元内容则C=0;A或X大于所寻址单元内容C=0,Z=0;A或X内容小于所寻址单元内容C=1。
BLT、BGE、BLE、BGT指令一般直接跟在有符号数减法或比较指令之后。
2.测试IRQ条件转移指令
这两条指令也不影响标志位。
测试所寻址单元相应位状态,若满足条件则发生转移,否则顺序执行下一条指令。只能对零页的RAM或I/O寄存器的位测试转移。不影响标志位。
4.减1不为零转移
这是兼有减1指令和不等于零转移指令功能的条件转移指令,不影响标志位。
5.比较相等转移指令
累加器A或X和所寻址单元内容相比较,若相等,则执行一相对转移指令;若不相等,顺序执行下一条指令。不影响标志位。
三、调用子程序指令
1.相对调用指令
该调用子程序指令功能和相对转移指令类似,只是增加PC进栈操作也不影响标志位。
2.绝对调用子程序指令
这些指令功能和绝对转移指令功能相似,只是附加了PC值进栈操作。不影响标志位。
四、返回指令
1.从子程序返回指令RTS
这条指令的功能是PC退栈返回主程序。一般子程序必须以RIS结束。
2.从中断返回指令RTI
这条的功能和RTS相似,只是多了CPU寄存器CCR、A、X的退栈操作,使CPU从原来被中断地方继续执行程序。中断服务程序必须以RTI指令结束。
五、控制指令
1.软件中断指令SWI
CPU执行SWI指令,产生不可屏蔽的软件中断,主要用于设计开发工具的监控程序。
五、控制指令
1.软件中断指令SWI
CPU执行SWI指令,产生不可屏蔽的软件中断,主要用于设计开发工具的监控程序。
2.堆栈指针复位指令RSP
RSP指令使SPL值为$FF,而SPH值保持不变。不影响标志。
注:为保证栈指针能正确初始化,最好使用LDHX和TXS指令,例对于把SP初始化为$00FF,可使用:LDHX# $100和TXS这两条指令。
3.节电方式指令
4.空操作指令
空操作指令,指令本身不执行任何操作。用在延时等程序中,以调节程序执行的时间。
上面我们简要地分析了M68HC08的指令系统。对汇编语言程序设计有一定基础的读者,就可以用M68HC08提供的指令,设计出各种应用程序。

本文相关文章:
mkdir p是什么意思(Linux里面mkdir -p命令-p是什么意思)
2026年9月13日 00:15
sublime text3c语言(sublime text3 如何在运行的时候打开命令行窗口)
2026年8月20日 00:15
winexec是什么(用WinExec调用DOS命令时“/c”是什么)
2026年8月19日 03:30
复制文件批处理命令(BAT命令把一个文件复制到指定的文件夹的方法是什么)
2026年8月1日 15:00
redhat系统进程管理器(Redhat linux常用的命令有哪些)
2026年7月31日 19:30
css表格内边距怎么设置(CSS中在表格中的文字要离上下左右的距离命令是什么应该怎么写)
2026年7月29日 03:45
tcp接收命令响应长度错误?基于tcpip协议的远程登录命令是
2026年7月27日 01:00
更多文章:
cadence adc仿真(Cadence教程3——与非电路原理图仿真以及版图绘制)
2025年12月27日 10:15
电脑中recent是什么(请问我的电脑里C盘上recent里有很多快捷方式图标,它们有什么用,能删除吗)
2026年4月12日 09:15
安卓permission denied(adb 遇到 Permission denied)
2025年12月28日 14:30
excel函数公式大全讲解乘法(excel乘法公式,财务人士必看)
2025年6月28日 18:45
java开发工具包怎么查看(java.util.* 这一类的包在哪里能查看其内容和作用)
2026年3月19日 05:00
简易php聊天室(用php做的聊天室CPU占用很高怎么解决)
2025年11月20日 08:45
delphi源码特殊标记(在delphi里怎么快速将一段代码加成注释)
2026年8月27日 21:45
西门子plc编程软件是什么(西门子PLC编程软件是西门子通用软件吗)
2025年6月5日 19:00











