TEC-2说明 - 图文(3)

2019-08-30 16:29

JR CND,ADR;条件满足时相对转移到ADR,ADR为原PC值+位移量

通过下列程序来理解相对条件转移、相对无条件转移如何翻译成机器码。

??

1FF0:MOV R0,R1 ??

1FFF:CMP R8,R9 2000: JR NZ,1FF0 2001:ADD R10,R9

??

2010: JR 2080 2011: AND R10,R9 ??

2080: ADD R8,R9 ?? 第二种格式:

15 10 9 8

操作码 CND 7

不用 4 3

SR 0

察看附录1 各条指令的操作码及微程序入口地址表格可得机器码为101000××,与CND无关。位移量为2080-2010=70H=111 0000B,其8位补码为0111 0000B,即F0H,因此该机器指令为A070H。 察看附录1 各条指令的操作码及微程序入口地址表格可得机器码为10011CND,因为判断条件为NZ,所以CND为001。位移量为1FF0-2000= -10H=-001 0000B,其8位补码为1111 0000B,即F0H,因此该机器指令为99F0H。 通过通用寄存器给出转移地址的转移指令。 JP SR;无条件转SR所指的地址

JP CND,SR;当条件满足时转SR所指的地址

第三种格式:

15 10 操作码 9 8 CND 7 不用 ADR 4 3 不用 0 按绝对地址实现的转移指令

JP ADR;无条件转移到ADR地址; JP CND,ADR;当条件满足时转移到ADR。

通过下列程序来理解绝对条件转移、绝对无条件转移如何翻译成机器码。

??

0FF0:MOV R0,R1

11

??

1FFF:CMP R8,R9 2000: JP Z,0FF0 2002: ADD R10,R12 ??

2008: JP 2080 200A:XOR R9,R8 ?? ??

2080: ADD R8,R9 ??

(6)子程序调用指令 两种格式,共2条。 格式一:

15 10 9 8

操作码 不用 7

不用 4 3

SR 0

察看附录1 各条指令的操作码及微程序入口地址表格可得机器码为11000CND,因为判断条件为Z,所以CND为101。转移地址为0FF0,该机器指令为1100 0101 ×××× ××××B 和0000 1111 1111 0000 B,即C500H 0FF0H,该指令占2个字。 察看附录1 各条指令的操作码及微程序入口地址表格可得机器码为110010××,与CND无关。转移地址为2080,因此该机器指令为C800H 2080H,占2个字。

CALL SR;调用SR指明的子程序,即SP←SP-1、[SP]←PC、PC←SR。 格式二:

15 10 操作码 9 8 7不用 不用 ADR 4 3 不用 0 CALL ADR;调用通过ADR指明的子程序,即SP←SP-1、[SP]← PC、PC←ADR。 汇编语言指令 CALL 1800 的机器码为 1100 11×× ×××× ×××× B 0001 1000 0000 0000B,即CC00H 1800H,占2个字。

2.2 按功能分类

按实现的功能划分,可以把指令划分为5类: 算逻指令,共19条: NOT DR;

INC DR;

DEC DR; ADD DR,SR;

AND DR,SR; SUB DR,SR; ADC DR,SR; OR DR,SR;

12

SBB DR,SR; CMP DR,SR; XOR DR,SR; TEST DR,SR; ASR DR; RCR DR;

SHL DR; RCL DR; SHR SR; MUL SR;

DIV SR

传送指令,共12条: MOV DR,SR;

MOV DR,DATA; MOV DR,DATA[SR];

MOV DR,[SR]; MOV DR,[ADR]; MOV DATA[SR],DR; MOV [DR],SR;

MOV [ADR],SR; PSHF;

PUSH DR; POPF; POP DR 入/出指令,共2条:

IN PORT; OUT PORT

控制类指令,共17条(每条转移指令按两条指令计算):

JR ADR; JP SR; JP ADR; JR CND,ADR; JP CND,SR; JP CND,ADR; CALL SR; CALL ADR; RET; IRET; EI; DI; STC; CLS; 其它指令,共3条:

NOP; LDMC; HALT;

3.TEC-2机汇编程序设计简介

汇编语言程序有顺序、循环、分支和子程序四种结构。限于篇幅,在此以实例讲解各种结构,有兴趣的同学可参考其它书籍,进一步学习汇编语言的程序设计方法。

3.1 顺序结构

例1 将内存900单元的内容乘以10,存放到901单元中,不能用乘法。

MOV MOV ADD ADD 共九次 MOV MOV SHL MOV

[901],R0 R0,[900] R0 R1,R0

用下述程序同样可实现上述功能。

R0,[900] R1,R0 R0,R1 R0,R1

13

SHL SHL R0 R0

ADD R1,R0 MOV [901],R1

如果可以用乘法,下述程序可实现上述功能。

MOV MOV MUL MOV

R1,0A R2,[900] R2

[901],R1

3.2 条件分支结构

例2 将900、901单元中较大的一个数送入902单元(无符号数)。

MOV

MOV INC MOV INC CMP JP MOV JR LP1: MOV LP2: ?? 3.3 循环结构

例3求内存900~910单元的累加和,将结果存入920单元中。

MOV R0,0

MOV MOV

LP1: MOV

ADD

INC CMP JR

R1,900 R3,911 R2,[R1] R0,R2 R1

R1,R3 NZ,LP1 R0,900 R1,[R0] R0 R2,[R0] R0

R1,R2 NC,LP1

[R0],R2

LP2 ;初学汇编语言的同学要特别注意该条语句的作用 [902],R1

MOV [920],R0

例4 用循环结构实现例1。

MOV

R1,[900]

14

MOV MOV LP:ADD DEC JP MOV 3.4 子程序结构

R2,0A R0,0 R0,R1 R2 NZ,LP [901],R0

例5将900~910单元中的奇数加10,偶数加20。

MOV MOV MOV

INC CMP

JR ?? SUB1:MOV TEST JR ADD JP LP2: ADD LP3: MOV

RET

TEC-2系统提供的部分子程序如下表1.2.2所示:

例如 CALL 005A,用于输入一个字符到R0的低字节。

通过上述实例,可以看到汇编语言程序是由顺序、循环、分支和子程序四种结构组合而成的,并不是一种结构的简单应用。

R2,[R0] R2,R3 Z,LP2 R2,10 LP3 R2,20 [R0],R2 R0,900 R1,910 R3,1 R0 R1,R0 NC,LP1

LP1: CALL SUB1

4.学习汇编语言的目的

(1)对TEC-2机每条指令的格式、功能及用途要有全面地了解,为学习计算机控制器设计,即微程序设计打牢基础。

(2)调试新指令的微程序,做内存扩展实验,做各种入/出接口实验,都要用到相应的

15


TEC-2说明 - 图文(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:八字实战案例深度剖析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: