汇编语言寻址方式及指令系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(0:不扩展,1:扩展) LACC ind ,16 [, ARn ] LACC # k, [shift]
300=32
300=32
8
例:LAR AR0,16;DP=6


310H=18H 310H=18H
AR0=6H
AR0=18H
例:LAR AR6,#3FFFH
前后
AR6=0H
AR6=3FFFH
2.存贮AR
SAR ARX,dir
;ARX dir(ind)
SAR ARX, ind [, ARn] ;执行中要修改,且要减、增量
3
间接寻址七种操作方式:
方式
操作数符号
不增不减
增1 减1 加变量值 减变数值 反向进位加变址量 反向进位减变址量
*
*+ **0+ *0*BRO+ *BRO-
AR内容所指数据存贮器地址内容加载暂时寄存器 (TREG)
AR内容加载后AR内容±1
AR内容加载后AR内容±ARO的内 容
AR加载后,反向进位方式将当前AR内容±ARO的内容
例:SST #1,*,ART
前后
ARP=0
ARP=7
AR0=300 AR0=300
300=0 300=2580
ST1=2580 ST1=2580
例:SST #0,96 ;指向0页的
96(60H)
Fra Baidu bibliotek


ST0=0A408
ST0=0A408H
60H=0A
60H=0A408H
7
B:辅助寄存器操作:(6条)
1. 装载AR
LAR ARX, dir ;dir(ind)(K) ARX
LAR ARX, ind[,ARn] ; 无论SXM何值均不扩展符号
LAR ARX,#K
LAR ARX,#Lk
例:LAR AR4,*_ ;执行中指定AR与ARP指定的AR相同,
则不减量


ARP=4
ARP=4
AR4=300
AR4=32
2
3.间接寻址:
由AR0-AR7作为间接寄存器,ARP的值(3位)作为当前辅 助寄存器。 ARAU(辅助寄存器算术单元)对辅助寄存器进行运算、修改 不占用CPU时间。 有4种操作:
①不增不减 ②增减 ③增减一个变址量 ④反向进位方式增减一个变量值
(反向进位方式:由高位开始运算,进位(借位)给低位,适用 于FFT算法。)
1
2.直接寻址:
对数据存贮器的访问,64K空间分为512页,由STO的9位确定 页面指针DP。由指令提供页内的128个字地址偏移量,占7位。 由DP+偏移量=16位直接地址。复位时,系统对DP不进行初始 化,由用户进行初始化。
例:LDP #4 ;DP=4页 地址为:200H-27FH ADD 9H,5 ;(200H+9)的内容左移5位后与累加器相加, 结果给累加器。
5. AR减 SBRK #K ; AR-K-AR
6. AR比较测试 CMPR CM
条件成立TC=1 否则TC=0

CM=00 测AR=ARO
01 测试AR>ARO
10 测试AR<ARO
11 测试AR=ARO
C 修改页指针(1条)
LDP dir LDP ind[,ARn] LDP #K
例 LDP * , AR5
例 ADD *+,8,AR4; ①当前AR内容所指数据存贮器单元的内容左移8位后与累加器相加 ②当前辅助寄存器内容加1 ③AR4为下一次当前AR
4
§ 5.1 数据传递类(39条)
A:状态寄存器操作:(2条)
(装ARP、ARB、DP及标志位)
(1)装状态寄存器ST0、ST1
LST #m, dir
;直接寻址,dir为常数形式的直接地址


ARP=4
ARP=5
AR4=300
AR4=300
300=06H
300=06
DP=1FFH
DP=06
均 为 无 符 号 数
11
D.累加器的操作(6条) 1.左移后装载累加器,32位送ACC
LACC dir [, shift] LACC dir, 16 LACC ind [, shift ,[,ARn]] ;移位时低位填0,高位受SXM影响
ARP=7
例:LST #0,*-AR1 执行前 ARP=4 AR4=3FF 3FF=EE04 ST0=EE00 ST1=E7EC
:*为当前寄存器的间接寻址 执行后
ARP=7;AR1忽略 AR4=3FFH 3FF=EE04 ST0=EE04;ARP=7 ST1=E7EC
6
(2)SST存贮状态寄存器 SST # m, dir ; ST0/ST1 数据存贮器,直接方式下无论DP多少, 总被存放在0页,且不改变DP。 SST # m, ind [, ARn] ;间接寻址中可存放在任何一页
DSP寻址方式有三种:立即、直接、间接
1.立即寻址: (1)短立即寻址:单字指令,指令中给出8、9、13位常数作为 操作数 一般立即数前加“#”。例:RPT #99;紧跟RPT后的指令 执行100次 (2)长立即寻址:双字指令,给出16位立即数 例:ADD #16384,2;将16384左移2位后与累加器相加, 结果送累加器。
例子:MAR *,AR1 例 MAR *+,AR5 .当前AR增量,并修改ARP
前 ARP=0 ARB=7
后 ARP=1 ARB=0


ARP=1
ARI=34
ARB=0
ARI=35 ARP=5 ARB = 1
10
4.AR加 ADRK #K ; K为无符号数,运算与SXM、OVM无关, 结果与C.OV无关。
例: SAR AR0, *+,
前后
ARP=0
ARP=0
AR0=401
401=401
401=0 AR0=402
例: SAR ARO,30; (DP=6)
ARO=37H
ARO=37H
31EH=18H
31EH=37H
9
3. 修改ARP MAR dir MAR ind [,ARn] ;修改ARP,且原ARP复制到ARB
LST #m, ind[,ARn] ;间接寻址,ind为辅助寄存器名
*m=0,选择ST0,m=1,选择ST1
*操作不影响1NTM。(D9位)
*装ST0时,只影响ARP,不影响ARB
装ST1时,即送ARB,也送ARP
*间接寻址时,虽然指定下一个ARn,但被忽略,将ST0/1中的
最高三位送ARP/ARB
5
例:LST #1,00H;(DP=6)页地址=000000110B 直接地址=00H
存储器地址=300H
执行前 执行后
300=E1BCH 300=E1BCH
ST0=0406H ST0=E406H;改变ARP D10=1
ST1=09ECH ST1=E1FCH D5~D8=1 D2,D3=1
ARP=0
相关文档
最新文档