作为例子,最简单的方法,是抄一条现有指令作为新指令予以实现。例如,操作码选D4,指令格式选为D4 DR,SR,,实现DR+SR→DR的功能。它就是ADD DR,SR那条指令,差别仅是操作码由04变为D4。查指令汇总表,D4操作码的微指令的入口地址应为100h,故将1Ch地址中的微指令(实现ADD DR,SR的操作)中的内容复制到100h单元,就完成了这条新指令的微程序设计的过程。看下面一个程序例子。

 <A800
 800: MOV R8, 240 ;为指令的目的寄存器赋初值
    MOV R9, 360 ;为指令的源寄存器赋初值
    MOV R1, 900 ;微码在内存的首地址
    MOV R2,1  ;微指令条数
    MOV R3, 100 ;微码在控存中的首地址
    LDMC     ;用R1,R2,R3作为参数,装入微码
    D489     ;新指令的二进制执行码
    RET
 <E900
 900: 0029...0301....b090....0088

  以上用到的数值均为16进制。在监控命令工作时,输入均用16进制数,且都不能跟h字符。

  该程序的功能是将240和360两个16进制形式的整数分别送入R8和R9。用新指令 (机器码为D489:操作码为D4,DR选R8,SR选R9) 完成两个寄存器的内容相加,结果写入R8。
该程序当中的4条指令,实现的是装入新指令的微码。微码在内存的首地址为900,四个字的内容为0029,0301,b090,0088,是控存1CH单元的内容,可以用监控程序的E命令键入。

  该程序可以用监控程序的命令打入。倒数第2行的D489是新指令的机器码,不能在A命令方式下打入。具体操作过程,可以在A命令方式下,先在此处打入任何一条单字指令,例如,MOV R0,R0。整个程序输入后,再将该单元的内容用E命令改为D489。

  该程序运行过程中,在为R8,R9赋值后,接着装入新指令的微码,再执行新指令,最后返回监控程序以结束该程序的执行过程。

  该程序运行结束后,用R命令检查程序的执行结果,R8的值应变为05A0。

  从这个例子可以得出以下几个结论:

  -- 新旧指令可以用在同一程序中;

  -- 新指令在每次教学机重新加电后,至少得重新装入一次对应的微码; 仅在装入相应微码后,新指令才能执行,即已将新指令追加到教学的指令系统中;

  -- 新指令无汇编码(因汇编程序实现在前,新指令实现在后),故在程序中,只能通过机器码使用新指令;否则必须去扩展有关的汇编程序。

  -- 装入新的微指令与使用新指令变得非常容易,同学的精力就可以全部集中到微程序设计方面来。但必须想到,新、旧指令的微程序之间存在着如下协调与配合关系:
  前边的例子中,只设计了新指令的具体执行功能,执行前的取指过程和执行后的判中断、与下条指令的衔接等均使用了原微程序的有关内容。从同学学习微程序设计的角度看,取指过程与每条指令完成后的相应处理是公用于所有指令的,而且比较简单,看懂原来的实现方法与细节,以及与每条指令执行过程的衔接方式,也就达到了深入掌握的程度,故一般不必在自己设计的微程序中考虑这一部分内容。若有的学生想在自己的微程序中实现自己设计的取指等处理过程,必须保证在新旧指令衔接时不出现矛盾。最简单的方法,是在自己的多条新指令中,有几条指令有自己设计的取指与后续处理,它们不能与原有指令的微程序段正确衔接。但有一条新指令用原有指令的取指处理完成取指过程,有另一条新指令用原有指令的后续处理完成判中断,保证能正确与原有指令的取指过程衔接。当用这样的两条指令"夹"起的其它新指令序列出现在任何程序中时,每条指令均将能正确衔接执行。

  设计不同格式与功能的新指令的执行步骤,以及每一步中的微指令字的各字段的编码,是学习计算机微程序设计的重点,也是学懂计算机指令执行过程的核心内容。