40年代的编程: Before the middle of the 1940s, computer operators "hardwired" their programs
40年代的编程: Before the middle of the 1940s, computer operators “hardwired” their programs
而后,二进制代码 显然,hardwired program不易修改,set switches 不能算是编码! 0010001000000100 如何让计算机的执行做到:programmable? 0010010000000100 A big problem! 0001011001000010 0011011000000011 Big idea: l,计算机提供基本的hardwired“原子操作” 1111000000100101 2,提供编码方式,支持程序员组合“原子操 0000000000000101 作”,编写“程序” 0000000000000110 3,将“程序”存放在存储空间中 0000000000000000 4,计算机“解读”程序编码,执行原子操作
而后,二进制代码 显然,hardwired program不易修改,set switches 不能算是编码! 如何让计算机的执行做到:programmable? A big problem! Big idea: 1,计算机提供基本的hardwired“原子操作” 2,提供编码方式,支持程序员组合“原子操 作”,编写“程序” 3,将“程序”存放在存储空间中 4,计算机“解读”程序编码,执行原子操作
例如: ·0010:操作码,将”某个”内存中的数据 复制到”某个"寄存器中 QQ.1.0001000000100 0010010000000100 ·001:001号寄存器 0001011001000010 ·第一个操作数 0011011000000011 ·000000100:地址偏移量,4 1111000000100101 ·第二个操作数:从下一条指令所存储的 地址向后偏移4个16位,取值5 0000000000000101 0000000000000110 执行效果:将5赋值给1号寄存器 0000000000000000
例如: • 0010: 操作码,将”某个”内存中的数据 复制到”某个”寄存器中 • 001: 001号寄存器 • 第一个操作数 • 000000100:地址偏移量,4 • 第二个操作数:从下一条指令所存储的 地址向后偏移4个16位,取值5 执行效果:将5赋值给1号寄存器
问题3 你看到“编程”了吗? 你看到“语言”了吗?
问题3 你看到 “编程”了吗? 你看到“语言”了吗?
以汇编指令为表示的机器级操纵指令 ·用机器语言编写程序,并记录在纸带或卡片上 输入:按钮、开关; 所有信息都 输出:指示灯等 是0/1序列1 假设:0010-jxx 穿孔表示0,未穿孔表示1 0:01010110 1:00100100 07(1J)22-1D4设EpTJ:4200R110:25T2,01463(2,)0 2: ●●●●● 3: ●●0●0● 太原始了,无法忍受,咋办? 4: 01100111 5: 21111112 10111 用符号表示而不用0/1表示! 6: 144a14141:4:I4440491t4144144944114444h4444444 若在第4条指令前加入指令,则 541s151553s1511531555555555555551551515515515555555i 5S656186E1656568685456655666566631661CA1C664564686886E656L058686M6 需重新计算地址码(如jxx的目 7111717177月177111711111917117111111912177117721011717771112111 标地址),然后重新打孔。 1ol111Al731111 不灵活!书写、阅读困难! 2022年1 10 11
• 用机器语言编写程序,并记录在纸带或卡片上 2022年12月14日 引言 10 以汇编指令为表示的机器级操纵指令 穿孔表示0,未穿孔表示1 0:0101 0110 1:0010 0100 2: …… 3: …… 4: 0110 0111 5: …… 6: …… 假设:0010-jxx 若在第4条指令前加入指令,则 需重新计算地址码(如jxx的目 标地址),然后重新打孔。 不灵活!书写、阅读困难! 太原始了,无法忍受,咋办? 用符号表示而不用0/1表示! 输入:按钮、开关; 输出:指示灯等 所有信息都 是0/1序列!