设计自己的计算机本节主题北京大学·慕课计算机组成制作人:陆俊林一个简单的计算机指令系统ADDR,M◦功能:将R的内容与M中的内容相加后存入RLOADR,M◦功能:将M中的内容装入RSTOREM,R◦功能:将R的内容存入M中JMPL◦功能:无条件转向L处*注:M和L为存储器地址,R为寄存器编号传送类指令转移类指令运算类指令指令的格式每条指令等长,均为2个字节第一个字节的高4位是操作码◦LOAD:0000;ADD:0001◦STORE:0010;JMP:0011◦目前只提供4条指令,最多可扩展到16条第一个字节的低4位是寄存器号◦R0~R3:0000~0011◦目前只提供4个寄存器,最多可扩展到16个第二个字节是存储单元地址◦最大可以使用256个字节的存储器第一个字节第二个字节xxxxxxxxxxxxxxxx操作码寄存器号存储单元地址指令示例0001001000001001ADDR2,[9]0101101000001001操作码未定义,寄存器号未定义错误指令示例运算任务示例任务说明1.将M1的内容与M2的内容相加后存入M32.完成运算后,程序转向L处的指令继续执行*M1、M2、M3和L均为存储单元的地址程序描述:1.将M1的内容送入某个寄存器,记为Rx2.将Rx的内容与M2的内容相加,运算结果存入Rx3.将Rx的内容送入M3中4.转移到L,取出下一条指令继续执行可用的指令ADDR,MLOADR,MSTOREM,RJMPL运算任务对应的程序设:M1=5,M2=6,M3=7,L=18机器语言程序0000001100000101000100110000011000100011000001110011000000010010汇编语言程序LOADR3,[5]ADDR3,[6]STORE[7],R3JMP[18]程序的功能将存储单元[5]的内容送入寄存器R3将寄存器R3的内容加上存储单元[6]的内容,再送回R3将寄存器R3的内容送入存储单元[7]中转向存储单元[18],取出指令继续执行机器语言程序0000001100000101000100110000011000100011000001110011000000010010在存储器中的机器语言程序存储器地址存储器内容说明0000010100001100地址[5],存放了数据120000011000100010地址[6],存放了数据340000011100000000地址[7],准备存放运算结果0000100000001011“LOADR3,[5]”的第一个字节0000100100000101“LOADR3,[5]”的第二个字节0000101000011011“ADDR3,[6]”的第一个字节0000101100000110“ADDR3,[6]”的第二个字节0000110000101011“STORE[7],R3”的第一个字节0000110100000111“STORE[7],R3”的第二个字节0000111000110000“JMP[18]”的第一个字节0000111100010001“JMP[18]”的第二个字节00010000........第五条指令的第一个字节00010001........第五条指令的第二个字节00010010........第六条指令的第一个字节(地址[18])模型机的CPU和存储器存储器MARMDR地址译码器控制逻辑IRPCMARMDR控制电路指令译码内部总线R3YZALUBFR0XCPU0000010100001100000001100010001000000111000000000000100000001011000010010000010100001010000110110000101100000110000011000010101100001101000001110000111000110000000011110001000100010000........00010001........00010010........模型机准备开始运行IRPCMARMDR控制电路指令译码内部总线R3YZALUBFR0XCPU存储器MARMDR地址译码器控制逻辑0000010112000001103400000111result00001000LOADR3,[5]00001001LOADR3,[5]00001010ADDR3,[6]00001011ADDR3,[6]00001100STORE[7],R300001101STORE[7],R300001110JMP[18]00001111JMP[18]00010000........00010001........00010010........00001000设计自己的计算机本节小结北京大学·慕课计算机组成制作人:陆俊林