PowerPoint Presentation

Size: px
Start display at page:

Download "PowerPoint Presentation"

Transcription

1 MIPS 指令集及汇编 一 MIPS 简介二 MIPS 体系结构三 MIPS 指令与汇编四 小结

2 一 MIPS 简介 MIPS 是美国著名的芯片设计公司, 它采用精简指令系统计算结构 (RISC 结构 ) 来设计芯片 MIPS 架构的产品多见于工作站, 索尼 PS2 游戏机所用的 Emotion Engine 处理器采用的也是 MIPS 指令, 由于其性能强劲, 美国政府在一开始禁止 PS2 游戏机出口到中国 PS3(Cell 处理器 ), 未来 PS4(Larrabee) RISC 比英特尔 CISC 设计更简单 设计周期更短 MIPS 的授权费用比较低, 被除英特尔外的大多数芯片厂商所采用 在设计理念上 MIPS 强调软硬件协同提高性能, 同时简化硬件设计

3 一 MIPS 简介 MIPS 是最早的 最成功的 RISC 处理器之一, 起源于 Stanford 大学 John Hennessy 教授的研究成果 Hennessy 于 1984 年在硅谷创立了 MIPS 公司 ( John L. Hennessy 出版了两本著名的教科书 : Computer Organization and Design : The Hardware /Software Interface( 计算机组成与设计 : 硬件 / 软件接口 ) Computer Architecture : A Quantitative Approach( 计算机体系结构 : 量化方法 ) David Patterson RISC 的倡导人, 伯克利的 RISC 技术是 SUN(Stanford UniversityNetwork ) 公司 SPARC 微处理器的核心技术

4 一 MIPS 简介 MIPS 是 Microcomputer without interlocked pipeline stages 的缩写, 含义是无互锁流水级微处理器 (MIPS 的另一个含义是每秒百万条指令 Millions of instructions per second) MIPS 的指令系统经过通用处理器指令体系 MIPS I MIPS II MIPS III MIPS IV 到 MIPS V, 嵌入式指令体系 MIPS16 MIPS32 到 MIPS64 的发展已经十分成熟 应用广泛的 32 位 MIPS CPU 包括 R2000,R3000 其 ISA 都是 MIPS I, 另一个广泛使用的 含有许多重要改进的 64 位 MIPS CPU R4000 及其后续产品, 其 ISA 版本为 MIPS III

5 一 MIPS 简介 1984 年,MIPS 计算机公司成立 1992 年,SGI 收购了 MIPS 计算机公司 1998 年,MIPS 脱离 SGI, 成为 MIPS 技术公司 1986 年推出 R2000 处理器, 1988 年推 R3000 处理器, 1991 年推出第一款 64 位商用微处器 R4000 之后又陆续推出 R8000(1994 年 ) R10000(1996 年 ) 和 R12000(1997 年 ) 等型号 随后,MIPS 公司把重点放在嵌入式系统 1999 年发布 MIPS32 和 MIPS64 架构标准, 集成了所有原来 MIPS 指令集, 并且增加了许多更强大的功能 陆续开发了高性能 低功耗的 32 位处理器内核 (core)mips324kc 与高性能 64 位处理器内核 MIPS64 5Kc 2000 年,MIPS 公司发布了针对 MIPS32 4Kc 的版本以及 64 位 MIPS 64 20Kc 处理器内核

6 一 MIPS 简介 基于龙芯 2E 处理器的千元的 PC 1999 元的笔记本电脑 意法半导体 3000 万元购买龙芯 2E 5 年的生产和销售权, 国产操作系统内核在龙芯 2E 上测试成功 龙芯 2E 微处理器是一款实现 64 位 MIPSⅢ 指令集的通用 RISC 处理器, 与 X86 指令架构互不兼容 ; 芯片面积 6.8mm 5.2mm; 最高工作频率为 1GHz; 实测功耗 5-7 瓦 龙芯 2E 在 1GHz 主频下 SPEC CPU2000 的实测分值达到 500 分, 综合性能达到了高端 Pentium Ⅲ 以及中低端 Pentium 4 处理器的水平 龙芯 2F

7 一 MIPS 简介 由于与 X86 指令的不兼容, 龙芯 2E 无法运行现有的 Windows 32/64 位操作系统, 和基于 Windows 的众多应用软件 龙芯 2E 笔记本电脑运行 OpenOffice 打开 Word 文档

8 二 MIPS 体系结构 指令集体系结构类型 : 寄存器 寄存器型 (1) 寄存器的特点 (2) 整数乘法单元和寄存器 (3) 寻址方式 (4) 存储器和寄存器中的数据类型 (5) 流水线冒险

9 二 MIPS 体系结构 (1) 寄存器 MIPS 包含 32 个通用寄存器 硬件没有强制性的指定寄存器使用规则, 但是在实际使用中, 这些寄存器的用法都遵循一系列约定 31 $ 0 $ 1 $ 2 $ 3 $ 寄存器约定用法引入了一系列的寄存器约定名 在使用寄存器的时候, 要尽量用这些约定名或助记符, 而不直接引用寄存器编号 $ 27 $ 28 $ 29 $ 30 $ 31 hi lo

10 编号助记符用法 0 zero 永远为 0 1 at 用做汇编器的暂时变量 2-3 v0, v1 子函数调用返回结果 4-7 a0-a3 子函数调用的参数 8-15 t0-t7 暂时变量, 子函数使用时不需要保存与恢复 t8-t s0-s7 子函数寄存器变量 在返回之前子函数必须保存和恢复使 用过的变量, 从而调用函数知道这些寄存器的值没有变化 26,27 k0,k1 通常被中断或异常处理程序使用作为保存一些系统参数 28 gp 全局指针 一些运行系统维护这个指针来更方 便的存取 static 和 extern 变量 29 sp 堆栈指针 30 s8/fp 第 9 个寄存器变量 / 框架指针 31 ra 子函数的返回地址

11 MIPS 通用寄存器的使用 两个特殊寄存器 : $0: 不管你存放什么值, 其返回值永远是零 ori $s6,$0,0x1000 beq $0,$0, fact $31: 永远存放着正常函数调用指令 (jal) 的返回地 主程序 : addi $a0, $0, 3 jal A add move $s1,$0,$a0 $a0 # 伪指令 过程 A: jr $ra

12 MIPS 通用寄存器的使用 $ at: 这个寄存器由编译器生成的复合指令使用 当必须明确地使用它 ( 如存入数据或从异常处理中恢复寄存器值 ) 时, 有一个汇编 directive 可以阻止编译器隐式地使用它 ( 这样会有一些汇编宏指令不能用 )

13 MIPS 通用寄存器的使用 $v0, $ v1: 用来存放一个子程序 ( 函数 ) 的非浮点运算的结果或返回值 如果这两个寄存器不够存放需要返回的值, 编译器将会通过内存来完成 li $ v0, 1 # 返回 1 j L1 # 跳转到代码并返回 L1: # 结果保存到寄存器 $ v0 sw $ ra,20 ($ sp) # 保存寄存器 $ ra sw $fp, 16 ($ sp) # 保存寄存器 $ fp

14 MIPS 通用寄存器的使用 $a0-a3: 用来传递子函数调用时前 4 个非浮点参数 sw $a0, 0 ($ fp) # 保存参数 lw $ v0, 0 ($ fp) # 装入 a0

15 MIPS 通用寄存器的使用 $t0-t9: 依照约定, 一个子函数可以不用保存并随便的使用这些寄存器 在作表达式计算时, 这些寄存器是非常好的暂时变量 注意 : 当调用一个子函数时, 这些寄存器中的值有可能被子函数破坏掉

16 MIPS 通用寄存器的使用 $s0-s8: 依照约定 子函数必须保证当函数返回时这些寄存器的内容必须恢复到函数调用以前的值, 或者在子函数里不用这些寄存器或把它们保存在堆栈上并在函数退出时恢复 这种约定使得这些寄存器非常适合作为寄存器变量 或存放一些在函数调用期间必须保存的原来的值 move $s1,$0 (add $s1, $0, $0) move $s2,$s1 (add $s2, $0, $s1) addiu $s3,$0,1 lw $s4,0($a0)

17 MIPS 通用寄存器的使用 $ k0, k1: 被 OS 的异常或中断处理程序使用 被使用后将不会恢复原来的值 因此它们很少在别的地方被使用

18 MIPS 通用寄存器的使用 $gp: 如果存在一个全局指针, 它将指向运行时决定的静态数据 (static data) 区域的一个位置 这意味着, 利用 gp 作基指针, 在 gp 指针 32K 左右的数据存取, 系统只需要一条指令就可完成 Op Rs Rt Address 6 位 5 位 5 位 16 位

19 MIPS 通用寄存器的使用 如果没有全局指针, 存取一个静态数据区域的值需要两条指令 : 一条是获取有编译器和 loader 决定好的 32 位的地址常量 另外一条是对数据的真正存取 为了使用 $gp, 编译器在编译时刻必须知道一个数据是否在 $gp 的 64K 范围之内 并不是所有的编译和运行系统支持 gp 的使用

20 MIPS 通用寄存器的使用 $ sp: 堆栈指针的上下需要显式的通过指令来实现 因此 MIPS 通常只在子函数进入和退出的时刻才调整堆栈的指针 这通过被调用的子函数来实现 SP 通常被调整到这个被调用的子函数需要的堆栈的最低的地方, 从而编译器可以通过相对於 sp 的偏移量来存取堆栈上的堆栈变量 地址减小方向 主存储器 unused unused unused unused unused unused unused unused <SP>

21 MIPS 通用寄存器的使用 $ fp: 另外的约定名是 s8 fp 作为框架指针可以被过程用来记录堆栈的情况, 在一个过程中变量相对于框架指针的偏移量是不变的 一些编程语言显示的支持这一点 汇编编程员经常会利用 fp 的这个用法 C 语言的库函数 alloca() 就是利用了 fp 来动态调整堆栈的 地址减小方向 主存储器 2 return addr temp vars unused unused unused unused unused fact(2) s 的栈框架 <SP> 21

22 MIPS 通用寄存器的使用 注意 : 如果堆栈的底部在编译时刻不能被决定, 你就不能通过 $sp 来存取堆栈变量, 因此 $fp 被初始化为一个相对于该函数堆栈的一个常量的位置 这种用法对其他函数可以是不可见的 地址减小方向 主存储器 arg 2 return addr temp vars unused unused unused unused unused <fp> <sp>

23 MIPS 通用寄存器的使用 $ra: 当调用任何一个子函数时, 返回地址存放在 ra 寄存器中, 因此通常一个子程序的最后一个指令是 : jr ra. 子函数如果还要调用其他的子函数, 必须保存 ra 的值, 通常通过堆栈.text main: subu $sp, $sp,32 # 堆栈帧有 32 字节长 sw $ra, 20 ($ sp ) # 保存返回地址 sw $fp, 16 ($ sp ) # 保存旧帧指针 addu $fp, $ sp, 28 # 设置帧指针

24 MIPS 通用寄存器的使用 $31: 永远存放着正常函数调用指令 (jal) 的返回地址 请注意 call-by-registe 的 jalr 指令可以使用任何寄存器来存放其返回地址 当然, 如不用 $31, 看起来程序会有点古怪 其他方面, 所有的寄存器都是一样的 可以被用在任何一个指令中

25 MIPS 通用寄存器的使用 MIPS 里没有状态码 CPU 状态寄存器或内部都不包含任何用户程序计算的结果状态信息 hi 和 lo 是与乘法运算器相关的两个寄存器大小的用来存放结果的地方 它们并不是通用寄存器, 除了用在乘除法之外, 也不能有做其他用途 MIPS 里定义了一些指令可以往 hi 和 lo 里存入任何值

26 MIPS 通用寄存器的使用 浮点运算协处理器 ( 浮点加速器,FPA), 如果存在的话, 有 32 个浮点寄存器 按汇编语言的简单约定讲, 是从 $f0 到 $f31 实际上, 对於 MIPS I 和 MIPS II 的机器, 只有 16 个偶数号的寄存器可以用来做数学计算 当然, 它们可以既用来做单精度 (32 位 ) 和双精度 (64 位 ) 当你做一个双精度的运算时, 寄存器 $f1 存放 $f0 的余数 奇数号的寄存器只用来作为寄存器与 FPA 之间的数据传送 MIPS III CPU 有 32 个 FP 寄存器 但是为了保持软件与过去的兼容性, 最好不要用奇数号的寄存器

27 X86 寄存器结构 寄存器 指令指针寄存器 段寄存器 标志寄存器 控制寄存器 0(CR0) 通用寄存器 专用寄存器 EAX EBX ECX EDX AH BH CH DH AL BL CL DL 0 IP CS DS SS ES FS GS AX BX CX DX CR0 的第 0 位 PE 为保护允许位, 切换实模式和保护模式 PE=0, 选择实模式 PE=1, 选择保护模式 ESP EBP ESI EDI SP BP SI DI FLAGS CR 0

28 三 MIPS 体系结构 (2) 整数乘法单元和寄存器 MIPS 体系结构认为乘法非常重要, 应该用硬件实现乘法指令, 这在 RISC CPU 中并不常见 乘法结果寄存器是互锁的 : 只有在整数乘法运算完成, 得到完整的结果后, 才能读取结果寄存器 思路 : 牺牲速度以换取执行简单和节省芯片空间

29 三 MIPS 体系结构 (3) 寻址方式 只有加载或存储指令可以访问存储器 存储器寻址方式 : 基址 - 偏移寻址 : 存储单元的地址是某个寄存器与指令中的偏移量之和 MIPS 只有三种指令格式 : R 格式 (Register format) I 格式 (Immediate format) J 格式 (Jump format) opcode rs rt rd shamt funct opcode rs rt offset opcode address

30 二 MIPS 体系结构 (4) 存储器和寄存器中的数据类型 MIPS CPU 的一次操作可读出或写入 1~8 个字节的数据 C 名称 MIPS 名称 Size/ 字节汇编助记符 long long dword 8 d int / long* word 4 w short halfword 2 h char byte 1 b *MIPS 编译器提供了 64 位指针, 它把 long 解释成 64 位数据, 总之 long 不应该小于 int

31 三 MIPS 指令与汇编 对于一条汇编语言指令来说, 有两个问题要解决 要指出进行什么操作 要指出大多数指令涉及的操作数和操作结果放在何处 1. 指令格式 2. 寻址方式 3. 指令系统

32 MIPS: 操作数 名称实例注释 32 个寄存器 2 30 个存储字 $s0, $s7 $t0, $t7 存储器 [1] 存储器 [2 30 ] 数据的快速定位, 算术运算指令的操作数必须在寄存器中 MIPS 只能使用数据传送指令访问 MIPS 中使用字寻址, 相邻数据字的字地址相差 4 常数?

33 MIPS: 操作数 寄存器为什么只有 32 个? 因为电信号传输距离越远, 传输时间就越长, 寄存器太多将会延长时钟周期 存储器对齐限制 : MIPS 中字的地址必须是 4 的倍数 存储器 : 地址 数据

34 MIPS 指令与汇编 所有的 MIPS 指令都是 32 位长 R-format: 所有其他 1. 指令格式 2. 寻址方式 I-format: 用于有立即数的指令, lw, sw, beq, bne ( 不包含移位指令 ) J-format: 无条件跳转 j, 并连接 jal 3. 指令系统

35 MIPS 指令格式 (1) R- 型指令 一条 32 位的 MIPS R 型指令按下表 bit 数划分为 6 个字段 : = 32bit 各段含义如下 : opcode rs rt rd shamt funct 操作码 第 1 个源操作数 第 2 个源操作数 目标寄存器 ( 放结果 ) 偏移量 函数码

36 MIPS 指令格式 (1) R-Format 例子 MIPS R 型指令 : add $8,$9,$10 10 进制表示 : 二进制表示的话 : 进制 : 012A 4020 hex hex 10 进制 : 19,546,144 ten

37 MIPS 指令格式 (2)I- 型指令 一条 32 位的 MIPS I 型指令按下表 bit 数划分为 4 个字段 : = 32bit 各段含义如下 : opcode rs rt address 操作码 第 1 个源操作数寄存器 目标寄存器 ( 放结果 ) 地址相对基址偏移量

38 MIPS 指令格式 (2)I- 型指令 I- 型指令 : 装入 / 存储指令 分支指令和立即数运算指令的格式 数据装入 :Rt = Mem[Rs + Address] 数据存储 :Mem[Rs + Address] = Rt Op Rs Rt Address 6 位 5 位 5 位 16 位 例 1: 装入 / 存储指令 lw $s1, 100($s2) 8E510064

39 MIPS 指令格式 (2)I- 型指令 例 2: 分支指令 if(rs <relation> Rt) goto (PC+4)+Address Op Rs Rt Address 6 位 5 位 5 位 16 位 分支指令采用的寻址方式为 PC 相对寻址 分支目标的地址是 PC+4 与指令中的偏移量之和

40 MIPS 指令格式 (2) I-Format 例子 (1/2) 例 3: addi $21,$22,-50 opcode = 8 ( 具体是什么操作 ) rs = 22 ( 操作数寄存器 ) rt = 21 ( 目的寄存器 ) immediate = -50 (by default, this is decimal) 请写出指令翻译成机器码

41 MIPS 指令格式 (2) I-Format 例子 (2/2) 例 3: addi $21,$22,-50 十进制指令格式 : 二进制指令格式 : 十六进制表示 : 22D5 FFCE hex 十进制表示 : 584,449,998 ten

42 MIPS 指令格式 (3) J-Format 指令 (1/2) J 型指令格式 : 6 bits 26 bits 每部分的名字是 : opcode target address 关键点 : 必须让 opcode 部分与 R 和 I 型指令一致, 以便于电路理解执行其他字段都节省出来给跳转的目的地址用以表示很大的跳转范围.

43 MIPS 指令格式 (3) J-Format 指令 例 : 跳转指令的格式 Address 6 位 26 位 跳转指令采用伪直接寻址 跳转地址为指令中的 26 位常数与 PC 中的高位拼接得到 例 : j

44 MIPS 指令格式 (3) J-Format 指令 总之 : 新的 PC = { PC[31..28], 目标地址, 00 } 一定要明白上面的每一项是从哪里来的! Note: {,, } 表示合并 { 4 bits, 26 bits, 2 bits } = 32 bit address { 1010, , 00 } = Note: 书上用, Verilog 里用 {,, }

45 ? 关于 MIPS 指令格式的思考 指令格式为什么要分三类呢? 所有指令长度相同, 都是 32 位 要让每一条指令刚好合适, 充分发挥作用 提示 : 和 ALU 及指令译码电路设计有关

46 哪条指令可以用 10 进制的 35 ten 表示? A. add $0, $0, $0 B. subu $s0,$s0,$s0 C. lw $0, 0($0) D. addi $0, $0, 35 E. subu $0, $0, $0 opcode rs rt opcode rs rt F. 指令怎么能用数字表示呢! 小测试 opcode rs rt offset 数字和寄存器名的对应关系 : 0: $0, 8: $t0, 9:$t1,..15: $t7, 16: $s0, 17: $s1,.. 23: $s7 操作码 opcode 和其他字段 (if necessary) add: opcode = 0, funct = 32 addi: opcode = 8 subu: opcode = 0, funct = 35 lw: opcode = 35 rd rd shamt shamt opcode rs rt immediate opcode rs rt rd shamt funct funct funct

47 1. 指令格式 MIPS 寻址方式 寄存器寻址 2. 寻址方式 3. 指令系统 立即数寻址 基址或偏移寻址 PC 相对寻址 伪直接寻址

48 MIPS 寻址方式 (1) 寄存器寻址 例 :MIPS 算术运算指令的操作数必须从 32 个 32 位寄存器中选取 add $ t0, $s1, $s2 # 寄存器 $ t0 的内容为 g+h add $ t1, $s3, $s4 # 寄存器 $ t1 的内容为 i+j sub $ s0, $t0, $t1 # 寄存器 $ s0 的内容为 (g+h)-(i+j) 2. Register addressing op rs rt rd... funct Registers Register

49 MIPS 寻址方式 (2) 立即数寻址 以常数作为操作数, 无须访问存储器就可以使用常数 因为常数操作数频繁出现, 所以在算术指令中加入常数字段, 比从存储器中读取常数快得多 Lw $ t0, AddrConstant4($ zero) # $ t0 = 常数 4 add $ sp, $sp, $t0 # $ sp = $ sp + $t0 ( $ t0 == 4) addi $ sp, $sp, 4 # $ sp =$ sp Immediate addressing op rs rt Immediate

50 MIPS 寻址方式 (2) 立即数寻址 怎样把一个 32 位长的常数装入寄存器 $ s0 中? Load Upper Immediate Lui $ s0, 61 # $ s0= addi $ s0, $s0, 2340 # $ s0= 拆散和重装大常数由汇编程序来完成 ori $s5,$0,0x1000 sll $s5,$s5,16 #$s5=a[]=0x , 1. Immediate addressing op rs rt Immediate

51 MIPS 寻址方式 (3) 基址或偏移寻址 操作数在存储器中, 且存储器地址是某寄存器与指令中某常量的和 Lw $ t0, 8 ($ s0 ) #$ s0 中装的是存储器中的地址 3. Base addressing op rs rt Address Memory Register + Byte Halfword Word

52 MIPS 寻址方式 (4)PC 相对寻址 例 : 条件分支指令 bne $ s0, $ s1, Exit # 如果 $ s0 不等于 $s1, 则跳转到 Exit Exit 6 位 5 位 5 位 16 位 程序计数器 =PC 寄存器 + 分支地址 4. PC-relative addressing op rs rt Address Memory PC + Word

53 MIPS 寻址方式 (4)PC 相对寻址 问题 1: 为什么选 PC 寄存器? 因为几乎所有的条件分支指令都是跳转到附近的地址 问题 2: 如何处理 16 位无法表达的远距离分支? 插入一个无条件跳转到分支目标地址的指令, 把分支指令中的条件变反以决定是否跳过该指令 Bne $s0, $s1, L < L2-PC <2 27 L1: L2: beq $s0, $s1, L1 j L2

54 MIPS 寻址方式 (5) 伪直接寻址 跳转地址 = PC 中原高 4 位 I 指令中的 26 位 I 00 j # 跳转到 PC I Pseudodirect addressing op Address Memory PC Word 问题 1:PC 高位限制了跳转的范围, 如何跳出高 4 位限制的范围? 问题 2: 目的地址比当前的 PC 地址小怎么办?

55 MIPS 寻址方式 MIPS 采用存取体系结构 : 只有取和存储指令实现存取 机器本身只提供一种存储器寻址方式 : c(rx) 立即数 c + 寄存器 rx 的值 虚拟机则为取和存储指令提供了几种寻址方式 : 格式 (register) imm Imm(register) label lable±imm Lable ±imm(register) 地址计算 寄存器内容立即数立即数 + 寄存器内容 lable 地址 lable 地址 ± 立即数 lable 地址 ± 寄存器内容

56 1. Immediate addressing op rs rt Immediate 2. Register addressing op rs rt rd... funct Registers Register 3. Base addressing op rs rt Address Memory Register + Byte Halfword Word MIPS 寻址方式 4. PC-relative addressing op rs rt PC Address + Memory Word 5. Pseudodirect addressing op Address Memory PC Word

57 MIPS 指令系统 1. 指令格式 2. 寻址方式 3. 指令系统 (1) 数据传送类 : (2) 算术 / 逻辑运算类 : (3) 控制类 : (4) 输入输出类 :

58 MIPS 指令系统 : 1 数据传送指令指令 ( 存储器访问 ) 说明 sw $3, 500($4) Store word sh $3, 502($2) Store half LUI R5 sb $2, 41($3) Store byte R5 lw $1, 30($2) Load word lh $1, 40($3) Load halfword lhu $1, 40($3) Load halfword unsigned lb $1, 40($3) Load byte lbu $1, 40($3) Load byte unsigned lui $1, 40 Load Upper Immediate (16 bits shifted left by 16) Q: Why need lui?

59 MIPS 指令系统 : 2 算术 \ 逻辑指令 每条指令有且仅有 3 个操作数, 且只执行一个操作 Add, AddU, Sub, SubU, And, Or, Xor, Nor, SLT, SLTU AddI, AddIU, SLTI, SLTIU, AndI, OrI, XorI, LUI SLL, SRL, SRA, SLLV, SRLV, SRAV 操作数个数固定所需的硬件 简单

60 MIPS 指令系统 : 2 算术 \ 逻辑指令 R 格式 ALU 指令的格式 Rs Rt Rd 为寄存器编号 Funct 字段为指令功能代码 操作码 第一源 第二源目标源 功能码 操作数 操作数操作数 Rs Rt Rd Funct 6 位 5 位 5 位 5 位 5 位 6 位 例 :add $s1, $s2, $s

61 MIPS 指令系统 : 2 算术 \ 逻辑指令 Start multiply, divide MULT rs, rt MULTU rs, rt DIV rs, rt DIVU rs, rt Move result from multiply, divide MFHI rd MFLO rd Move to HI or LO MTHI rd MTLO rd 乘法 / 除法 multiply/divide Registers HI Q: Why not Third field for destination? LO

62 MIPS 指令系统 : 2 算术 \ 逻辑指令指令例子含义 add add $1,$2,$3 $1 = $2 + $3 3 operands; exception possible subtract sub $1,$2,$3 $1 = $2 $3 3 operands; exception possible add immediate addi $1,$2,100 $1 = $ constant; exception possible add unsigned addu $1,$2,$3 $1 = $2 + $3 3 operands; no exceptions

63 MIPS 指令系统 : 2 算术 \ 逻辑指令 指令例子含义 subtract unsigned subu $1,$2,$3 $1 = $2 $3 3 operands; no exceptions add imm. unsign. addiu $1,$2,100 $1=$2+100+constant; no exceptions multiply mult $2,$3 Hi, Lo = $2 $3 64-bit signed product multiply unsigned multu$2,$3 Hi, Lo = $2 $3 64-bit unsigned product

64 MIPS 指令系统 : 2 算术 \ 逻辑指令 指令例子含义 divide div $2,$3 Lo = $2 $3, Lo = quotient, divide unsigned divu $2,$3 Lo = $2 $3, Hi = remainder,hi = $2 mod $3 Unsigned quotient & remainder Hi = $2 mod $3 Move from Hi mfhi $1 $1 = Hi Used to get copy of Hi Move from Lo mflo $1 $1 = Lo Used to get copy of Lo

65 MIPS 算术指令 指令 例子 含义 说明 add add $1,$2,$3 $1 = $2 + $3 3 operands; exception possible subtract sub $1,$2,$3 $1 = $2 $3 3 operands; exception possible add immediate addi $1,$2,100 $1 = $ constant; exception possible add unsigned addu $1,$2,$3 $1 = $2 + $3 3 operands; no exceptions subtract unsigned subu $1,$2,$3 $1 = $2 $3 3 operands; no exceptions add imm. unsign. addiu $1,$2,100 $1 = $ constant; no exceptions multiply mult $2,$3 Hi, Lo = $2 x $3 64-bit signed product multiply unsigned multu$2,$3 Hi, Lo = $2 x $3 64-bit unsigned product divide div $2,$3 Lo = $2 $3, Lo = quotient, Hi = remainder Hi = $2 mod $3 divide unsigned divu $2,$3 Lo = $2 $3, Unsigned quotient & remainder Hi = $2 mod $3 Move from Hi mfhi $1 $1 = Hi Used to get copy of Hi Move from Lo mflo $1 $1 = Lo Used to get copy of Lo Q: Which add for address arithmetic? Which add for integers?

66 Q: Which add for address arithmetic? 无符号整数一般都是用来表示存储器地址, 溢出即使发生, 也大多数被忽略掉了, 因此 MIPS 采用了两种不同的算术运算指令来分别处理 (1) addu, addiu, subu 在发生溢出的时候不产生异常, (2)add, addi, sub 在发生溢出时产生异常

67 究竟何时发生溢出? 加法 : 两正数相加结果为负, 两负数相加结果为正 减法 : 正数减负数结果为负, 负数减正数结果为正 MIPS 在检测到溢出发生时会产生一个异常, 造成溢出指令的地址被存到一个特定寄存器中 乘法 :multu Hi 不为 0,mult Hi 各位不等于 Lo 符号位 MIPS 乘 / 除法指令都忽略了溢出的情况, 程序必须自己判断得到的积 / 商是否超出了 32 位寄存器能表示的范围, 还必须自己处理除零操作

68 MIPS 指令系统 : 2 算术\ 逻辑指令 指令 例子 含义 and and $1,$2,$3 $1 = $2 & $3 3 reg. operands; Logical AND or or $1,$2,$3 $1 = $2 $3 3 reg. operands; Logical OR xor xor $1,$2,$3 $1 = $2 ^ $3 3 reg. operands; Logical XOR nor nor $1,$2,$3 $1 = ~($2 $3) 3 reg. operands; Logical NOR

69 MIPS 指令系统 : 2 算术 \ 逻辑指令指令例子含义 and immediate andi $1,$2,10 $1 = $2 & 10 or immediate ori $1,$2,10 $1 = $2 10 xor immediate xori $1, $2,10 $1 = ~$2 &~10 Logical AND reg, constant Logical OR reg, constant Logical XOR reg, constant

70 MIPS 指令系统 : 2 算术\ 逻辑指令 指令 例子 含义 shift left logical sll $1,$2,10 $1 = $2 << 10 Shift left by constant shift right logical srl $1,$2,10 $1 = $2 >> 10 Shift right by constant shift right arithm. sra $1,$2,10 $1 = $2 >> 10 Shift right (sign extend) shift left logical sllv $1,$2,$3 $1 = $2 << $3 Shift left by variable shift right logical srlv $1,$2,$3 $1 = $2 >> $3 Shift right by variable shift right arithm. srav $1,$2,$3 $1 = $2 >> $3 Shift right arith. by variable

71 移位指令 MIPS 指令系统 : 2 算术 \ 逻辑指令 0 SLL 逻辑左移 (Shift Left Logical) 0 SHR 逻辑右移 (Shift Right Logical) 0 SLA 算术左移 (Shift Left Arithmetic ) SAR 算术右移 (Shift Right Arithmetic)

72 MIPS 指令系统 : 2 算术 \ 逻辑指令 指令例子含义说明 and and $1,$2,$3 $1 = $2 & $3 3 reg. operands; Logical AND or or $1,$2,$3 $1 = $2 $3 3 reg. operands; Logical OR xor xor $1,$2,$3 $1 = $2 ^ $3 3 reg. operands; Logical XOR nor nor $1,$2,$3 $1 = ~($2 $3)3 reg. operands; Logical NOR and immediate andi $1,$2,10 $1 = $2 & 10 Logical AND reg, constant or immediate ori $1,$2,10 $1 = $2 10 Logical OR reg, constant xor immediate xori $1, $2,10 $1 = ~$2 &~10 Logical XOR reg, constant shift left logical sll $1,$2,10 $1 = $2 << 10 Shift left by constant shift right logical srl $1,$2,10 $1 = $2 >> 10 Shift right by constant shift right arithm. sra $1,$2,10 $1 = $2 >> 10 Shift right (sign extend) shift left logical sllv $1,$2,$3 $1 = $2 << $3 Shift left by variable shift right logical srlv $1,$2,$3 $1 = $2 >> $3 Shift right by variable shift right arithm.srav $1,$2,$3 $1 = $2 >> $3 Shift right arith. by variable Q: Can some multiply by 2 i? Divide by 2 i? Invert?

73 MIPS 什么时候做符号位扩展? 符号位扩展 : Examples of sign extending 8 bits to 16 bits: 什么时候立即数被符号位扩展? 算术指令总是将立即数做符号位扩展即便指令是无符号的! 逻辑指令 (andi, ori 通常处理无符号数 ) 不对立即数做符号位扩展 (They are zero extended) Load/Store address computations always sign extend immediates

74 MIPS 什么时候做符号位扩展? Multiply/Divide have no immediate operands however: unsigned treat operands as unsigned The data loaded by the instructions lb and lh are extended as follows ( unsigned don t extend): lbu, lhu are zero extended lb, lh are sign extended Q: 既然已经没有立即数参与运算了, 为什么还需要 addu 这个指令?( 无符号 )

75 MIPS 什么时候做符号位扩展? addiu 在执行前也要将指令中的立即数进行符号位扩展, 因为 : 虽然 U 代表无符号数, 但是 addiu 事实上都被看作一条不会发生溢出的 add 指令, 因此常用它来加上一个负的立即数 同理 :addu,sltiu,sltu

76 比较与分支 MIPS 指令系统 : 3 控制类指令 BEQ rs, rt, offset if R[rs] == R[rt] then PC-relative branch BNE rs, rt, offset <> 与零比较并分支 BLEZ rs, offset if R[rs] <= 0 then PC-relative branch BGTZ rs, offset > BLTZ < BGEZ >= BLTZAL rs, offset if R[rs] < 0 then branch and link (into R 31) BGEZAL >=0 如果要实现其他比较功能, 则需要两个以上的指令 基本上都是与零比较 ( 这个速度快 )

77 MIPS 指令系统 : 跳转分支和比较指令 3 控制类指令 Instruction Example Meaning branch on equal beq $1,$2,100 if ($1 == $2) go to PC Equal test; PC relative branch branch on not eq. bne $1,$2,100 if ($1!= $2) go to PC Not equal test; PC relative set on less than slt $1,$2,$3 if ($2 < $3) $1=1; else $1=0 Compare less than; 2 s comp. set less than imm. slti $1,$2,100 if ($2 < 100) $1=1; else $1=0 Compare < constant; 2 s comp. set less than uns. sltu $1,$2,$3 if ($2 < $3) $1=1; else $1=0 Compare less than; natural numbers set l. t. imm. uns. sltiu $1,$2,100 if ($2 < 100) $1=1; else $1=0 Compare < constant; natural numbers jump j go to Jump to target address jump register jr $31 go to $31 For switch, procedure return jump and link jal $31 = PC + 4; go to For procedure call

78 MIPS 指令系统 : 跳转分支和比较指令 3 控制类指令 Instruction Example Meaning branch on equal beq $1,$2,100 if ($1==$2) go to PC Equal test; PC relative branch branch on not eq. bne $1,$2,100 if ($1!= $2) go to PC Not equal test; PC relative jump j go to Jump to target address jump register jr $31 go to $31 For switch, procedure return jump and link jal $31 = PC + 4; go to For procedure call

79 MIPS 指令系统 : 跳转分支和比较指令 3 控制类指令 Instruction Example Meaning set on less than slt $1,$2,$3 if ($2 < $3) $1=1; else $1=0 Compare less than; 2 s comp. set less than imm. slti $1,$2,100 if ($2 < 100) $1=1; else $1=0 Compare < constant; 2 s comp. set less than uns. sltu $1,$2,$3 if ($2 < $3) $1=1; else $1=0 Compare less than; natural numbers set l. t. imm. uns. sltiu $1,$2,100 if ($2 < 100) $1=1; else $1=0 Compare < constant; natural numbers

80 有符号与无符号比较运算 $1= $2= $3= After executing these instructions: slt $4,$2,$1 ; if ($2 < $1) $4=1; else $4=0 slt $5,$3,$1 ; if ($3 < $1) $5=1; else $5=0 sltu $6,$2,$1 ; if ($2 < $1) $6=1; else $6=0 sltu $7,$3,$1 ; if ($3 < $1) $7=1; else $7=0 What are values of registers $4 - $7? Why? $4 = ; $5 = ; $6 = ; $7 = ; two two two

81 小结 : MIPS 编译器寄存器使用约定 名称 寄存器号用途 在调用时是否保留 $zero 0 常数 0 n/a $at 1 为汇编程序保留 $v0-$v1 2-3 结果值和表达式求值 no $a0-$a3 4-7 参数 no $t0-$t 临时变量 no $s0-$s 保存 yes $t18-$t 其他临时变量 no $k0-$k 为操作系统保留 $gp 28 全局指针 yes $sp 29 栈指针 yes $fp 30 框架指针 yes $ra 31 返回地址 yes

82 MIPS 指令系统 : 1 数据传送指令指令 ( 存储器访问 ) 说明 sw $3, 500($4) Store word sh $3, 502($2) Store half sb $2, 41($3) Store byte R5 lw $1, 30($2) Load word lh $1, 40($3) Load halfword lhu $1, 40($3) Load halfword unsigned lb $1, 40($3) Load byte lbu $1, 40($3) Load byte unsigned lui $1, 40 Load Upper Immediate (16 bits shifted left by 16) LUI R Q: Why need lui?

83 MIPS 算术指令 指令 例子 含义 说明 add add $1,$2,$3 $1 = $2 + $3 3 operands; exception possible subtract sub $1,$2,$3 $1 = $2 $3 3 operands; exception possible add immediate addi $1,$2,100 $1 = $ constant; exception possible add unsigned addu $1,$2,$3 $1 = $2 + $3 3 operands; no exceptions subtract unsigned subu $1,$2,$3 $1 = $2 $3 3 operands; no exceptions add imm. unsign. addiu $1,$2,100 $1 = $ constant; no exceptions multiply mult $2,$3 Hi, Lo = $2 x $3 64-bit signed product multiply unsigned multu$2,$3 Hi, Lo = $2 x $3 64-bit unsigned product divide div $2,$3 Lo = $2 $3, Lo = quotient, Hi = remainder Hi = $2 mod $3 divide unsigned divu $2,$3 Lo = $2 $3, Unsigned quotient & remainder Hi = $2 mod $3 Move from Hi mfhi $1 $1 = Hi Used to get copy of Hi Move from Lo mflo $1 $1 = Lo Used to get copy of Lo Q: Which add for address arithmetic? Which add for integers?

84 MIPS 指令系统 : 2 算术 \ 逻辑指令 指令例子含义说明 and and $1,$2,$3 $1 = $2 & $3 3 reg. operands; Logical AND or or $1,$2,$3 $1 = $2 $3 3 reg. operands; Logical OR xor xor $1,$2,$3 $1 = $2 ^ $3 3 reg. operands; Logical XOR nor nor $1,$2,$3 $1 = ~($2 $3)3 reg. operands; Logical NOR and immediate andi $1,$2,10 $1 = $2 & 10 Logical AND reg, constant or immediate ori $1,$2,10 $1 = $2 10 Logical OR reg, constant xor immediate xori $1, $2,10 $1 = ~$2 &~10 Logical XOR reg, constant shift left logical sll $1,$2,10 $1 = $2 << 10 Shift left by constant shift right logical srl $1,$2,10 $1 = $2 >> 10 Shift right by constant shift right arithm. sra $1,$2,10 $1 = $2 >> 10 Shift right (sign extend) shift left logical sllv $1,$2,$3 $1 = $2 << $3 Shift left by variable shift right logical srlv $1,$2,$3 $1 = $2 >> $3 Shift right by variable shift right arithm.srav $1,$2,$3 $1 = $2 >> $3 Shift right arith. by variable

85 MIPS 指令系统 : 跳转分支和比较指令 3 控制类指令 Instruction Example Meaning branch on equal beq $1,$2,100 if ($1 == $2) go to PC Equal test; PC relative branch branch on not eq. bne $1,$2,100 if ($1!= $2) go to PC Not equal test; PC relative set on less than slt $1,$2,$3 if ($2 < $3) $1=1; else $1=0 Compare less than; 2 s comp. set less than imm. slti $1,$2,100 if ($2 < 100) $1=1; else $1=0 Compare < constant; 2 s comp. set less than uns. sltu $1,$2,$3 if ($2 < $3) $1=1; else $1=0 Compare less than; natural numbers set l. t. imm. uns. sltiu $1,$2,100 if ($2 < 100) $1=1; else $1=0 Compare < constant; natural numbers jump j go to Jump to target address jump register jr $31 go to $31 For switch, procedure return jump and link jal $31 = PC + 4; go to For procedure call

86 MIPS32 架构中有 32 个通用寄存器, 虽然硬件没有强制性的指定寄存器使用规则, 在实际使用中, 这些寄存器的用法都遵循一系列约定 这些约定与硬件确实无关, 但如果你想使用别人的代码, 编译器和操作系统, 你最好是遵循这些约定 为什么 MIPS 架构中没有 X86 中的 PC( 程序计数 ) 寄存器? MIPS 中程序怎么计数?

87 数据通路流水线化

88 MIPS 计算机硬件对过程的支持 为新数据分配空间 利用堆栈存储过程中不适合用寄存器保存的局部变量 ( 如局部数组 或结构 ) 过程框架 : 也叫活动记录, 是指包含了过程保存的寄存器和局部变量的堆栈段 下图给出了过程调用之前 之中和之后的堆栈状态

89 High address MIPS 计算机硬件对过程的支持 地址由高到低 $fp $fp $sp $fp Saved argument registers (if any) $sp Saved return address Saved saved registers (if any) Local arrays and structures (if any) $sp Low address a. 框架指针 $fp 指向框架的第一个字, 通常是保存调用的参数寄存器 ; b. c.

90 High address MIPS 计算机硬件对过程的支持 地址由高到低 $fp $fp $sp $fp Saved argument registers (if any) $sp Saved return address Saved saved registers (if any) Local arrays and structures (if any) $sp Low address a. 栈指针 $sp 指向栈顶, 在程序执行的过程中栈指针有可能改变 ; b. c.

91 High address MIPS 计算机硬件对过程的支持 地址由高到低 $fp $fp $sp $fp Saved argument registers (if any) $sp Saved return address Saved saved registers (if any) Local arrays and structures (if any) $sp Low address a. 因此通过固定的框架指针来访问变量要比用栈指针更简便 b. c.

92 High address MIPS 计算机硬件对过程的支持 地址由高到低 $fp $fp $sp $fp Saved argument registers (if any) $sp Saved return address Saved saved registers (if any) Local arrays and structures (if any) $sp Low address a. 如果一个过程的栈中没有局部变量, 编译器将不设置和恢复框架指针, 以节省时间 b. c.

93 High address MIPS 计算机硬件对过程的支持 地址由高到低 $fp $fp $sp $fp Saved argument registers (if any) $sp Saved return address Saved saved registers (if any) Local arrays and structures (if any) $sp Low address a. 当需要框架指针时, 以调用时的 $sp 值作为框架指针的初值, 调用返回时, 根据 $fp 恢复 $sp 值 b. c.

94 为新数据分配空间 框架指针 $fp 指向框架的第一个字, 通常是保存的参数寄存器 ; 栈指针 $sp 指向栈顶, 在程序执行的过程中栈指针有可能改变 ; 因此通过固定的框架指针来访问变量要比用栈指针更简便 如果一个过程的栈中没有局部变量, 编译器将不设置和恢复框架指针, 以节省时间 当需要框架指针时, 以调用时的 $sp 值作为框架指针的初值, 调用返回时, 根据 $fp 恢复 $sp 值

95 $sp MIPS 程序和数据的存储器空间使用约定 7fff ffff hex Stack 从顶端开始, 对栈指针初始化为 7fffffff, 并向下向数据段增长 ; 在底端, 程序代码 ( 文本 ) 开始于 ; 静态数据开始于 ; 紧接着是由 C 中 malloc 进行存储器分配的动态数据, 朝堆栈段向上增长 Dynamic data 全局指针被设定为易于访问数据的地址, 以便使用相对于 $gp 的 ±16 位偏移量 hex -1000ffff hex $gp pc hex Static data hex Text hex Reserved 0

96 在 32 位 MIPS 体系结构下, 最多可寻址 4GB 地址空间 这 4GB 空间的分配是怎样的呢? Kernel Space Mapped Cached 0xFFFFFFFF 0xC xA x Kernel Space Unmapped Cached Kernel Space Unmapped Uncached User Space 0xBFFFFFFF 0x9FFFFFFF 0x7FFFFFFF 0x MIPS Logical Addressing Space

97 总之 : MIPS I 之特点 32-bit 固定格式指令 ( 三种 ) 32 个 32-bit 通用寄存器 GPR (R0 contains zero) and 32 个浮点寄存器 FP(and HI LO) 由软件决定如何使用 3 元运算指令格式, 包括地址 - reg-reg 等组合. 单一的寻址方式 (LD/ST): 基址加偏移 base + displacement 没有间接寻址 对 16-bit/32bit 立即数的支持方式 :LUI

98 总之 : MIPS I 之特点 简单的分支条件 compare against zero or two registers for =, 没有整数条件码 延迟分支 execute instruction after a branch (or jump) even if the branch is taken (Compiler can fill a delayed branch with useful work about 50% of the time)

99 做做看 : $s3=i, $s4=j, $s5=@a Loop: addiu $s4,$s4,1 # j = j + 1 sll $t1,$s3,2 # $t1 = 4 * i addu $t1,$t1,$s5 # $t1 A[i] lw $t0,0($t1) # $t0 = A[i] addiu $s3,$s3,1 # i = i + 1 slti $t1,$t0,10 # $t1 = $t0 < 10 beq $t1,$0, Loop # goto Loop slti $t1,$t0, 0 # $t1 = $t0 < 0 bne $t1,$0, Loop # goto Loop What C code properly fills in the blank in loop on right? 1: A[i++] >= 10 2: A[i++] >= 10 A[i] < 0 3: A[i] >= 10 A[i++] < 0 4: A[i++] >= 10 A[i] < 0 5: A[++i] >= 10 && A[i] < 0 6: None of the above do j = j + 1 while ( );

100 Peer Instruction: $s3=i, $s4=j, Loop: addiu $s4,$s4,1 # j = j + 1 sll $t1,$s3,2 # $t1 = 4 * i addu $t1,$t1,$s5 # $t1 A[i] lw $t0,0($t1) # $t0 = A[i] addiu $s3,$s3,1 # i = i + 1 do j = j + 1 while ( ); slti $t1,$t0,10 # $t1=1 $t0 < 10 beq $t1,$0, Loop # goto Loop if $t1 == 0 ($t0 >= 10) slti $t1,$t0, 0 # $t1=1 $t0 < 0 bne $t1,$0, Loop # goto Loop if $t1!= 0 ($t0 < 0) What C code properly fills in the blank in loop on right? 1: A[i++] >= 10 2: A[i++] >= 10 A[i] < 0 3: A[i++] >= 10 A[i-1] < 0 4: A[i++] >= 10 A[i] < 0 5: A[++i] >= 10 && A[i] < 0 6: None of the above

101 Let s Play Compiler! 规则 : 变量在主存储器中运算在 ALU 中完成寄存器中放临时的运算结果或者变量语句 : z = (x + y) * (x - y) ; lw $r1, x($0) lw $r2, y($0) add $r3, $r1, $r2 sub $r4, $r1, $r2 mul $r5, $r3, $r4 sw $r5, z($0) Address x: y: z: Memory 101

102 编译 Statement: variable = expression ; code for expression sw $rz, var_add($0) rz expression: exp1 OP exp2 code for exp1 rx code for exp2 ry

103 语句块 Block: { statement 1 ; statement 2 ;.. statement k ; } code for statement 1 code for statement 2.. code for statement k

104 条件语句 if expression then block 1 else block 2 ; code for expression code for block 1 rz beq $rz, $zero, else-block 即 predicate = 0 意味着假 = 0 意味着真 else-block: beq $zero, $zero done done: code for block 2 always branches

105 循环 while 表达式代码块 ; do else- 代码块 : 表达式的代码 rz beq $rz, $zero, done 代码块的汇编代码 done: beq $zero, $zero, else-block

106 MIPS 汇编语言 绝大多数的 MIPS 汇编语言晦涩难懂, 充满了各种寄存器号 ; 可以使用宏处理语言来允许程序员用寄存器名 ( 反映了每个寄存器的习惯用法 ) 代替寄存器号 ; 大多数采用 C 预处理器, 去掉 C 风格的注释, 因此可以在汇编代码里使用这种注释 : /* this is a comment*/ # so is this Entrypoint: # that s a lable addu $1, $2, $3 #(register $1=$2+$3) 注意 : 目标寄存器在左边

107 MIPS 汇编语言 MIPS 公司的汇编器会合成一些指令 严格的编译器应该产生和机器代码一一对应的指令, 合成指令是用来帮助程序员的 一个 32 位的立即数加载 : 可以在代码中加载任何数据, 汇编器会把其拆开成为两个指令, 分别加载在这个数据的前半部分和后半部分 li $s1, 0x 从一个内存地址加载 : 可以加载一个内存变量 汇编器通常会将这个变量地址的高位放入一个暂时的寄存器中, 然后将这变量的低位作为一个加载的偏移量 La $s1, address

108 MIPS 通用寄存器的使用 MIPS 体系结构下, 程序计数器 (PC) 不是一个寄存器, 在一个具有流水线的 CPU 中, 程序计数器的值在一个给定的时刻有多个可选值, 但可见的只有一个... jal printf move $4, $6 xxx # return here after call jal 指令的返回地址跟随其后的第二条指令, 因为紧跟踪 jal 指令后面的指令在 delay slot( 延迟位置 ) 上 注意 : 关于延迟位置的规则是该指令在转移目标 ( 如上述的 printf) 之前执行 延迟位置指令经常被用来传递函数调用的参数

微机原理(计算机原理与接口技术)

微机原理(计算机原理与接口技术) 微机原理 ( 计算机原理 ) 第 10 讲 MIPS 体系结构与编程 1 第 10 讲 MIPS 体系结构与编程 MIPS 体系结构概述 MIPS 指令集简介 MIPS 汇编语言程序设计 2 MIPS 体系结构概述 MIPS 诞生于 1980 年代, 是最早的 RISC 处理器之一, 也是目前销量最好的 RISC 处理器之一, 从游戏机到路由器, 再到 SGI 的超级计算机, 都可以看到 MIPS

More information

L15 MIPS Assembly

L15 MIPS Assembly Lecture 19: MIPS Assembly Language 程序的机器级表示主要内容 MIPS 指令格式 R- 类型 / I- 类型 / J- 类型 MIPS 寄存器 长度 / 个数 / 功能分配 MIPS 操作数 寄存器操作数 / 存储器操作数 / 立即数 / 文本 / 位 MIPS 指令寻址方式 立即数寻址 / 寄存器寻址 / 相对寻址 / 伪直接寻址 / 偏移寻址 MIPS 指令类型

More information

Microsoft PowerPoint - chx03_org08_Mul&shift

Microsoft PowerPoint - chx03_org08_Mul&shift 计算机组织与系统结构 ALU 设计 乘法与移位 ( 第八讲 ) 位 ALU 完成 AND OR 和 ADD 功能的一位 ALU 输入进位 (CarryIn) A 程旭 3..3 B -bit 全加器 多路选择器 输出进位 (CarryOut) 结果 (Result) 更加细化的框图 LSB 和 MSB 需要进行特殊处理 signed-arith and cin xor co Ovflw A a3 b3

More information

1 CPU

1 CPU 2000 Tel 82316285 82317634 Mail liuxd@buaa.edu.cn 1 CPU 2 CPU 7 72 A B 85 15 3 1/2 M301 2~17 : 3/4 1/2 323 IBM PC 1. 2. 3. 1. 2. 3. 1.1 Hardware Software 1.2 M3 M2 M1 1.2 M3 M1 M2 M2 M1 M1 M1 1.2 M3 M1

More information

Microsoft PowerPoint - C15_LECTURE_NOTE_05.ppt

Microsoft PowerPoint - C15_LECTURE_NOTE_05.ppt 8088/8086 MICROPROCESSOR PROGRAMMING INTEGER INSTRUCTIONS AND COMPUTATIONS 8088/8086 MICROPROCESSOR PROGRAMMING INTEGER INSTRUCTIONS AND COMPUTATIONS 5.1 Data-Transfer Instructions 5.2 Arithmetic Instructions

More information

Microsoft PowerPoint - C15_LECTURE_NOTE_05.ppt

Microsoft PowerPoint - C15_LECTURE_NOTE_05.ppt 8088/8086 MICROPROCSOR PROGRAMMING INTEGER INSTRUCTIONS AND COMPUTATIONS The MOVE The move (MOV) instruction is used to transfer a byte or a word of data from a source operand to a destination operand

More information

第五章 重叠、流水和现代处理器技术

第五章 重叠、流水和现代处理器技术 2006 5 l t 1 t 2 t 3 t 4 I: add r1,r2,r3 J: sub r4,r1,r5 : (Hazard) : (Hazard) Instr 1 Instr 2 ( ) Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Load Ifetch ALU DMem Instr 1 Ifetch ALU DMem

More information

untitled

untitled 8086/8088 CIP /. 2004.8 ISBN 7-03-014239-X.... TP313 CIP 2004 086019 16 100717 http://www.sciencep.com * 2004 8 2004 8 1 5 500 787 1092 1/16 16 1/2 391 000 1 2 ii 1 2 CAI CAI 3 To the teacher To the student

More information

Microsoft PowerPoint - chap3.ppt

Microsoft PowerPoint - chap3.ppt 微算機系統第三章 Arithmetic for Computers 陳伯寧教授電信工程學系國立交通大學 chap3-1 Arithmetic Where we've been: Abstractions: Instruction Set Architecture Assembly Language and Machine Language What's up ahead: Implementing

More information

L15 MIPS Assembly

L15 MIPS Assembly Lecture 20: MIPS Assembly Language II Example: 过 程 调 用 int i; i 是 全 局 静 态 变 量 void set_array(int num) { array 数 组 是 局 部 变 量 int array[10]; for (i = 0; i < 10; i ++) { set_array 是 调 用 过 程 arrar[i] = compare

More information

第5章:汇编语言程序设计

第5章:汇编语言程序设计 第 5 章 : 汇编语言程序设计 程 汇编语言指令格式 系统伪指令 存储器选择方式 常用子程序 1 汇编语言程序设计 PIC 指令系统 语言系统 指 CPU 编 器语言 器语言 器语言 设计 用 语言 设计 语言 汇编语言 2 汇编语言指令格式 汇编语言指令格式 ( 指令 ) label opcode operand comment 指令 用 存 指令 指令语 3 汇编语言指令格式 1 指令 用 指令

More information

Microsoft PowerPoint - CA_02 Chapter5 Part-I_Single _V2.ppt

Microsoft PowerPoint - CA_02 Chapter5 Part-I_Single _V2.ppt Chapter5- The Processor: Datapath and Control (Single-cycle implementation) 臺大電機系吳安宇教授 V. 3/27/27 V2. 3/29/27 For 27 DSD Course 臺大電機吳安宇教授 - 計算機結構 Outline 5. Introduction 5.2 Logic Design Conventions 5.3

More information

,768 32,767 32K JMP Jnnn (386+) LOOP CALL [Label:] JMP short/near/far address L10: jmp jmp L20: L10 L20

,768 32,767 32K JMP Jnnn (386+) LOOP CALL [Label:] JMP short/near/far address L10: jmp jmp L20: L10 L20 (Jump) (Loop) (Conditional jump) CMP CALL AND SAR/SHR TEST JMP NOT SAL/SHL Jnnn* OR RCR/ROR LOOP XOR RCL/ROL RETn * nnn, JNE JL -128 127-32,768 32,767 32K JMP Jnnn (386+) LOOP CALL [Label:] JMP short/near/far

More information

Principles of Computers

Principles of Computers MIPS 汇编语言程序设计 LD(R31,x,R0) BNE(R0,skip,R31) LD(R31,y,R1) ADDC(R1,1,R1) ST(R1,y,R31) skip:...$%$^$&&$&$ if(x==0) y=y+1; 2010-10-10 1 1 机器语言 汇编程序设计思路 01010110001110001001010010 2 汇编 3 编译器 4 典型程序结构及汇编语言设计

More information

untitled

untitled CPU!! 00-11-8 Liping zhang, Tsinghua 1 : ADD(r1, r, r) CMPLEC(r, 5, r0) MUL(r1, r, r) SUB(r1, r, r5) ADD r, ( ) r CMP. CMP r.. t t + 1 t + t + t + t + 5 t + 6 IF( ) ADD CMP MUL SUB RF NOP ADD CMP MUL SUB

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,

More information

Microsoft PowerPoint - CA_03 Chapter5 Part-II_multi _V1.ppt

Microsoft PowerPoint - CA_03 Chapter5 Part-II_multi _V1.ppt Chapter5-2 The Processor: Datapath and Control (Multi-cycle implementation) 臺大電機系 吳安宇教授 V1. 03/27/2007 For 2007 DSD Course 臺大電機吳安宇教授 - 計算機結構 1 Outline 5.1 Introduction 5.2 Logic Design Conventions 5.3

More information

Computer Architecture

Computer Architecture ECE 3120 Computer Systems Assembly Programming Manjeera Jeedigunta http://blogs.cae.tntech.edu/msjeedigun21 Email: msjeedigun21@tntech.edu Tel: 931-372-6181, Prescott Hall 120 Prev: Basic computer concepts

More information

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63> 第三章 Q3 1 1. 省略了 I/O 操作的复杂逻辑, 易实现, 耗费低 ; 2. 可以利用丰富的内存寻址模式实现灵活的 I/O 操作 Q3 2 假设存储单元 ds1 处寄存器地址为 0x2000, 代码如下 #define ds1 0x2000 while ( *ds1 == 0 ) ; Q3 3 假设设备 (dev1) 中有两个寄存器 ds1 和 dd1,dev1 的地址为 0x1000,ds1

More information

C/C++ - 函数

C/C++ - 函数 C/C++ Table of contents 1. 2. 3. & 4. 5. 1 2 3 # include # define SIZE 50 int main ( void ) { float list [ SIZE ]; readlist (list, SIZE ); sort (list, SIZE ); average (list, SIZE ); bargragh

More information

幻灯片 1

幻灯片 1 3 8086 Tel:2656809 tjx@csu.edu.cn 2005-9-14 1 2005-9-14 2 8086 8 8086 8086 7 2005-9-14 3 PC 2005-9-14 4 2005-9-14 5 81616 2005-9-14 6 [ ] MOV AX, 3064H AX=3064H 16AX OP 64H 30H 2005-9-14 7 16 AX BX CX

More information

单周期数据通路

单周期数据通路 计算机组织与系统结构 设计单周期数据通路的处理器 Designing a Single Cycle Datapath Microprocessor 第四讲 程旭 27..2 2 Processor Processor Control Enable? Read/Write Memory Datapath PC Registers Arithmetic & Logic Unit (ALU) Address

More information

Microsoft PowerPoint - C15_LECTURE_NOTE_04.ppt

Microsoft PowerPoint - C15_LECTURE_NOTE_04.ppt MACHINE LANGUAGE CODING AND THE DEBUG SOFTWARE DEVELOPMENT PROGRAM OF THE PC MACHINE LANGUAGE CODING AND THE DEBUG SOFTWARE DEVELOPMENT PROGRAM OF THE PC 4.1 Converting Assembly Language Instructions to

More information

Microsoft PowerPoint - C15_LECTURE_NOTE_04.ppt

Microsoft PowerPoint - C15_LECTURE_NOTE_04.ppt MACHINE LANGUAGE CODING AND THE DEBUG SOFTWARE DEVELOPMENT PROGRAM OF THE PC General instruction format for machine code 611 37100 微處理機原理與應用 Lecture 04-4 MACHINE LANGUAGE CODING AND THE DEBUG SOFTWARE

More information

7 Q&A 11 2

7 Q&A 11 2 PPCA2018: 带五级流 的 MIPS 模拟器 PPCA 助教组 2018.7 目录 1 概述 3 2 时间和要求 3 3 正确性 3 3.1 初始化..................................... 3 3.2 寄存器..................................... 3 3.2.1 通 寄存器..............................

More information

提纲. 1 实验准备. 2 从实模式进入保护模式. 3 小结 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, / 11

提纲. 1 实验准备. 2 从实模式进入保护模式. 3 小结 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, / 11 .. 软件综合实验之操作系统 进入保护模式 陈香兰 中国科学技术大学计算机学院 July 1, 2016 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, 2016 1 / 11 提纲. 1 实验准备. 2 从实模式进入保护模式. 3 小结 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, 2016 2 / 11 实验准备 实验环境准备

More information

Microsoft PowerPoint - 05-第五讲-寻址方式.pptx

Microsoft PowerPoint - 05-第五讲-寻址方式.pptx 第五讲 授课教师 : 陆俊林王箫音 2012 年春季学期 主要内容 一 寻址方式概述 二 数据的寻址方式 三 转移地址的寻址方式 教材相关章节 : 微型计算机基本原理与应用 ( 第二版 ) 第 4 章寻址方式与指令系统 1 主要内容 一 寻址方式概述 二 数据的寻址方式 三 转移地址的寻址方式 2 指令的组成 指令由操作码和操作数两部分组成 操作码操作数 MOV AX, 8726H ADD AX,

More information

国家高技术研究发展计划课题(八六三计划)

国家高技术研究发展计划课题(八六三计划) 国家高技术研究发展计划课题 ( 八六三计划 ) 超大规模集成电路设计专项 技术报告 MediaDSP3201/3202 指令集用户手册 专题名称 : 嵌入式 CPU 开发和 SOC 设计平台技术研究课题名称 :SOC 中 32 位数字信号处理器芯片开发和设计平台技术研究课题编号 :2002AA1Z1140 依托单位 : 浙江大学参加单位 : 杭州士兰微电子股份有限公司参加单位 : 杭州国芯科技有限公司

More information

ebook105-12

ebook105-12 12 12.1 C P U T x X T y Y T x >T y Y P XY Y X P x = 1 / T x P y = 1 / T y ( 1 2-1 ) P y > P x ( 1 2-2 ) C P U = # 12.2 334 C P U 12-1 a I F I D E X E M E M W B C P U 12-1 b C P U C P U t i n s t t i n

More information

C/C++ - 字符输入输出和字符确认

C/C++ - 字符输入输出和字符确认 C/C++ Table of contents 1. 2. getchar() putchar() 3. (Buffer) 4. 5. 6. 7. 8. 1 2 3 1 // pseudo code 2 read a character 3 while there is more input 4 increment character count 5 if a line has been read,

More information

Ch2.1

Ch2.1 2.1 指令系统 王超 中国科学技术大学计算机学院嵌入式系统实验室 2019 年春 主要内容 1. 指令系统概述 1.1 指令系统的发展 1.2 指令系统的性能要求 1.3 编程语言与硬件的关系 2. 指令格式 2.1 指令的一般格式 2.2 指令字长 2.3 指令助记符 3. 操作数与操作类型 3.1 操作数类型 3.2 数据在存储器中的存储方式 3.3 操作类型 4. 寻址方式 4.1 指令寻址

More information

µÚ¶þÕ µ¥´¦ÀíÆ÷Ìåϵ½á¹¹

µÚ¶þÕ  µ¥´¦ÀíÆ÷Ìåϵ½á¹¹ 第二章 单处理器体系结构 石教英 2.1 Intel80x86 处理器体系结构综述 (1) CISC 体系结构 计算机自 40 年代中叶问世以来, 其体系结构的发展经历了 : 简单 复杂 极其复杂 简单 复杂 极其复杂 接线控制器, 速度作数不定:0-6 个; 操作数种类十几种; 寻址方设计, 以便于修改, 纠指令数增加; 寻址方式增加; 指令格式复杂指令数少: 加法和转移令数增加; CPI 接近于1;

More information

C/C++语言 - 运算符、表达式和语句

C/C++语言 - 运算符、表达式和语句 C/C++ Table of contents 1. 2. 3. 4. C C++ 5. 6. 7. 1 i // shoe1.c: # include # define ADJUST 7. 64 # define SCALE 0. 325 int main ( void ) { double shoe, foot ; shoe = 9. 0; foot = SCALE * shoe

More information

SuperMap 系列产品介绍

SuperMap 系列产品介绍 wuzhihong@scu.edu.cn 3 / 1 / 16 / John M. Yarbrough: Digital Logic Applications and Design + + 30% 70% 1 CHAPTER 1 Digital Concepts and Number Systems 1.1 Digital and Analog: Basic Concepts P1 1.1 1.1

More information

Microsoft Word - 最新正文.doc

Microsoft Word - 最新正文.doc 9 21 1.1.1 1.1.2 1 2 2 Windows 7+Office 2010 3 4 5 6 4 7 1.1.3 5 1.1.4 1 3 2 NII 1993 3 CNNIC 2014 1 16 33 1 2013 12 6.18 5358 45.8% 2012 3.7 2 2013 12 5 19.1% 2012 74.5% 81.0% 2013 3G 2013 12 2.47 2012

More information

《计算机应用基础》学习材料(讲义)

《计算机应用基础》学习材料(讲义) 计 算 机 应 用 基 础 学 习 材 料 ( 讲 义 ) Fundamentals of Computer Application 2014-3-22 JIANGSU OPEN UNIVERSITY 第 二 学 习 周 计 算 机 基 础 知 识 ( 一 ) 导 学 在 本 学 习 周, 我 们 主 要 的 任 务 是 认 识 计 算 机 你 将 知 道 计 算 机 是 什 么 时 候 产 生 的,

More information

国家高技术研究发展计划课题(八六三计划)

国家高技术研究发展计划课题(八六三计划) 文件编号 : ZDMC/MD64-002 项目名称 MediaDSP3200/6400 IP Core MediaDSP32/64 ISA Manual (Draft) 编写人 : 浙江大学信息学院 SoC 研发小组 编写时间 :2007 年 5 月 审核人 : 刘鹏 审核时间 :2007 年 5 月 MediaDSP32/64 ISA Manual (Draft)...0 MediaDSP32/64

More information

Microsoft PowerPoint - os_4.ppt

Microsoft PowerPoint - os_4.ppt 行 程 資 科 系 林 偉 川 行 程 概 念 行 程 與 程 式 主 要 的 不 同 點 : 程 式 是 被 放 在 外 部 的 儲 存 裝 置 如 磁 碟 上, 而 行 程 則 被 放 在 記 憶 體 中 程 式 在 儲 存 裝 置 中 是 靜 態 的, 而 行 程 在 記 憶 體 中 是 動 態 的, 它 會 隨 著 一 些 事 件 的 發 生 而 產 生 相 對 的 改 變 行 程, 就 是

More information

Microsoft Word - em78 sub program.doc

Microsoft Word - em78 sub program.doc 一 二进制数转换为 ASCⅡ 码 将一个字节的二进制数转换为两位 16 进制数的 ASCⅡ 码 main: mov a,@0x9f ; 二进制数为 0x9f mov 0x30,a ; 二进制数存入 0x30 mov a,@0x02 mov 0x10,a ;0x10 中存放转换次数 mov a,@0x31 mov 0x04,a ;0x04 中为转换后数据存放地址 mov a,0x30 B1: ; 取

More information

Chapter 3

Chapter 3 Chapter 3 Arithmetic for Computers 陳瑞奇 (J.C. Chen) 亞洲大學資訊工程學系 Adapted from class notes by Prof. C.T. King, NTHU, Prof. M.J. Irwin, PSU and Prof. D. Patterson, UCB 3.2 Addition & Subtraction p.67 ( 頁 69)

More information

ARM中C和汇编混合编程及示例.doc

ARM中C和汇编混合编程及示例.doc ARM 中 C 和汇编混合编程及示例 在嵌入式系统开发中, 目前使用的主要编程语言是 C 和汇编,C++ 已经有相应的编译器, 但是现在使用还是比较少的 在稍大规模的嵌入式软件中, 例如含有 OS, 大部分的代码都是用 C 编写的, 主要是因为 C 语言的结构比较好, 便于人的理解, 而且有大量的支持库 尽管如此, 很多地方还是要用到汇编语言, 例如开机时硬件系统的初始化, 包括 CPU 状态的设定,

More information

Static Enforcement of Security with Types

Static Enforcement of Security with Types 例题 1 一个 C 语言程序及其在 X86/Linux 操作系统上的编译结 果如下 根据所生成的汇编程序来解释程序中四个变 量的存储分配 生存期 作用域和置初值方式等方面 的区别 static long aa = 10; short bb = 20; func( ) { } static long cc = 30; short dd = 40; static long aa = 10; func(

More information

Microsoft PowerPoint - STU_EC_Ch02.ppt

Microsoft PowerPoint - STU_EC_Ch02.ppt 樹德科技大學資訊工程系 Chapter 2: Number Systems Operations and Codes Shi-Huang Chen Sept. 2010 1 Chapter Outline 2.1 Decimal Numbers 2.2 Binary Numbers 2.3 Decimal-to-Binary Conversion 2.4 Binary Arithmetic 2.5

More information

<4D F736F F D20CAB5D1E BACDBBE3B1E0D3EFD1D4B5C4BBECBACFB1E0B3CCCAB5D1E92E646F63>

<4D F736F F D20CAB5D1E BACDBBE3B1E0D3EFD1D4B5C4BBECBACFB1E0B3CCCAB5D1E92E646F63> 1 实验目的 实验 2 C 和汇编语言的混合编程实验 学习在 C 程序中使用嵌入式汇编编写程序 了解嵌入式汇编的格式 语言特点 2 实验设备 S3C2410 开发板 ADS1.2 集成开发环境,JTAG 调试器 串口连接线 3 实验原理 在 ARM 的应用开发中,C 语言功能强大且容易编写程序, 但是汇编程序在底层的操作仍然具有 C 程序无法替代的功能, 有时候我们需要在 C 程序中嵌入汇编程序来完成一些直接对底层的诸如寄存器的操作

More information

主要内容 指令系统的一般概念 指令操作方式操作码的含义指令对操作数的要求指令执行的结果 寻址方式 指令说明 2015 年 3 月 16 日星期一 8 时 2 分 37 秒 2

主要内容 指令系统的一般概念 指令操作方式操作码的含义指令对操作数的要求指令执行的结果 寻址方式 指令说明 2015 年 3 月 16 日星期一 8 时 2 分 37 秒 2 第 3 章 8086 的寻址方式和指令系统 (1) 2015 年 3 月 16 日星期一 8 时 2 分 37 秒 1 主要内容 指令系统的一般概念 指令操作方式操作码的含义指令对操作数的要求指令执行的结果 寻址方式 指令说明 2015 年 3 月 16 日星期一 8 时 2 分 37 秒 2 3.1 8086 的寻址方式 两种不同的类型 : 一类是程序地址 ( 在代码段中 ) 的寻址方式 ; 另一类是操作数地址的寻址方式

More information

2/80 2

2/80 2 2/80 2 3/80 3 DSP2400 is a high performance Digital Signal Processor (DSP) designed and developed by author s laboratory. It is designed for multimedia and wireless application. To develop application

More information

第七章 中断

第七章 中断 计算机组成原理 总结 图说 COD llxx@ustc.edu.cn 计算科学 (Computing) 计算机组成 :how computers work 硬盘 电源导线和电缆 软驱 内存 扩展槽 扩展卡 主板 微处理器 (CPU) 各种外设接口, 包括 : 键盘 鼠标 显示器 USB 声卡 网卡 并行口等 CPU 风扇支架 PCI 扩展槽 IDE 内存 CPU 硬条插盘接插槽槽口 华硕 P4S533-MX

More information

1 CPU interrupt INT trap CPU exception

1 CPU interrupt INT trap CPU exception 1 CPU interrupt INT trap CPU exception 2 X86 CPU gate 64 16 1 2 5 8 16 16 P DPL 00101 TSS 101 DPL P 1 64 16 1 2 1 1 3 3 5 16 16 16 P DPL 0 D 000 16 110 111 100 D 1=32 0=16 DPL P 1 INT DPL1>=CPL>=DPL CPU

More information

gcc 对整型和浮点型参数传递的汇编码生成特点分析 张昱 1. 相关资料 关于浮点数 (Floating-point) 的存储表示 : 浮点数的存储目前广泛采用 IEEE 754 标准 (1980 年 Intel 提出, 1985 年被 IEEE 采纳,

gcc 对整型和浮点型参数传递的汇编码生成特点分析 张昱 1. 相关资料 关于浮点数 (Floating-point) 的存储表示 : 浮点数的存储目前广泛采用 IEEE 754 标准 (1980 年 Intel 提出, 1985 年被 IEEE 采纳, gcc 对整型和浮点型参数传递的汇编码生成特点分析 张昱 1. 相关资料 关于浮点数 (Floating-point) 的存储表示 : 浮点数的存储目前广泛采用 IEEE 754 标准 (1980 年 Intel 提出, 1985 年被 IEEE 采纳,http://babbage.cs.qc.edu/courses/cs341/IEEE-754references.html ) 32 位单精度 :Bit

More information

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File 51 C 51 51 C C C C C C * 2003-3-30 pnzwzw@163.com C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test

More information

第 15 章 程 式 編 写 語 言 15.1 程 式 編 写 語 言 的 角 色 程 式 編 寫 語 言 是 程 式 編 寫 員 與 電 腦 溝 通 的 界 面 語 法 是 一 組 規 則 讓 程 式 編 寫 員 將 字 詞 集 合 起 來 電 腦 是 處 理 位 元 和 字 節 的 機 器, 與

第 15 章 程 式 編 写 語 言 15.1 程 式 編 写 語 言 的 角 色 程 式 編 寫 語 言 是 程 式 編 寫 員 與 電 腦 溝 通 的 界 面 語 法 是 一 組 規 則 讓 程 式 編 寫 員 將 字 詞 集 合 起 來 電 腦 是 處 理 位 元 和 字 節 的 機 器, 與 程 式 編 写 語 言 在 完 成 這 章 後, 你 將 能 夠 了 解 程 式 編 写 語 言 的 功 能 了 解 高 階 語 言 和 低 階 語 言 之 間 的 分 別 知 道 翻 譯 程 式 的 意 義 和 能 夠 把 翻 譯 程 式 分 類 為 : 匯 編 程 式 編 譯 程 式 和 解 譯 程 式 認 識 不 同 翻 譯 程 式 的 優 點 和 缺 點 程 式 是 指 揮 電 腦 的 指

More information

42 2141601026 2016 11 27 2 1.1............................................. 2 1.2....................................... 2 1.2.1......................................... 2 1.3.............................................

More information

幻灯片 1

幻灯片 1 操作系统课程实验 Lab1:bootloader 启动 ucore os 大纲 x86 启动顺序 C 函数调用 gcc 内联汇编 (inline assembly) x86-32 下的中断处理 理解 x86-32 平台的启动过程理解 x86-32 的实模式 保护模式理解段机制 x86 启动顺序 x86 启动顺序 寄存器初始值 摘自 "IA-32 Intel 体系结构软件开发者手册 " x86 启动顺序

More information

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc References (Section 5.2) Hsuan-Tien Lin Deptartment of CSIE, NTU OOP Class, March 15-16, 2010 H.-T. Lin (NTU CSIE) References OOP 03/15-16/2010 0 / 22 Fun Time (1) What happens in memory? 1 i n t i ; 2

More information

第5章修改稿

第5章修改稿 (Programming Language), ok,, if then else,(), ()() 5.0 5.0.0, (Variable Declaration) var x : T x, T, x,,,, var x : T P = x, x' : T P P, () var x:t P,,, yz, var x : int x:=2. y := x+z = x, x' : int x' =2

More information

<4D6963726F736F667420506F776572506F696E74202D20B5DAD2BBD5C228B4F2D3A1B0E6292E707074205BBCE6C8DDC4A3CABD5D>

<4D6963726F736F667420506F776572506F696E74202D20B5DAD2BBD5C228B4F2D3A1B0E6292E707074205BBCE6C8DDC4A3CABD5D> Homeworks ( 第 三 版 ):.4 (,, 3).5 (, 3).6. (, 3, 5). (, 4).4.6.7 (,3).9 (, 3, 5) Chapter. Number systems and codes 第 一 章. 数 制 与 编 码 . Overview 概 述 Information is of digital forms in a digital system, and

More information

SeTAQ 是 山 东 西 泰 克 仪 器 有 限 公 司 的 注 册 商 标 本 说 明 书 未 经 书 面 许 可 不 得 翻 印 修 改 或 引 用 警 告 : 请 专 业 人 员 检 测 和 维 修 本 设 备! 警 告 : 本 仪 表 使 用 24V 直 流 电 源, 请 务 必 正 确

SeTAQ 是 山 东 西 泰 克 仪 器 有 限 公 司 的 注 册 商 标 本 说 明 书 未 经 书 面 许 可 不 得 翻 印 修 改 或 引 用 警 告 : 请 专 业 人 员 检 测 和 维 修 本 设 备! 警 告 : 本 仪 表 使 用 24V 直 流 电 源, 请 务 必 正 确 SeTAQ R HMCA 系 列 高 速 多 通 道 数 字 称 重 接 线 盒 使 用 说 明 书 山 东 西 泰 克 仪 器 有 限 公 司 山 东 济 南 高 新 区 天 辰 大 街 1251 号 www.setaq.com setaq@setaq.com V1..2 SeTAQ 是 山 东 西 泰 克 仪 器 有 限 公 司 的 注 册 商 标 本 说 明 书 未 经 书 面 许 可 不 得

More information

投影片 1

投影片 1 2 理 1 2-1 CPU 2-2 CPU 理 2-3 CPU 類 2 什 CPU CPU Central Processing Unit ( 理 ), 理 (Processor), CPU 料 ( 例 ) 邏 ( 例 ),, 若 了 CPU, 3 什 CPU CPU 了, 行, 利 CPU 力 來 行 4 什 CPU 5 2-2-1 CPU CPU 了 (CU, Control Unit) / 邏

More information

Microsoft PowerPoint - 微原-第3章3.ppt [兼容模式]

Microsoft PowerPoint - 微原-第3章3.ppt [兼容模式] 本教案内容 第 3 章 8086CPU 指令系统 1. 汇编语言指令 9. 转移指令 10. 2. 8086 指令分类循环控制指令 11. 子程序调用返回 3. 数据与转移地址的指令寻址方式 12. 中断调用返回指 4. 数据传送类指令令 5. 算术运算类指令 13. 字符串操作指令 6. 逻辑运算类指令 14. I/O 输入输出指令 7. 移位类指令 15. 其它指令 8. 标志位操作指令 16.

More information

Ps22Pdf

Ps22Pdf ( ) ( 150 ) 25 15 20 40 ( 25, 1, 25 ), 1. A. B. C. D. 2. A. B. C. D. 3., J = 1 H = 1 ( A B, J', J, H ) A. A = B = 1, J' =0 B. A = B = J' =1 C. A = J' =1, B =0 D. B = J' = 1, A = 0 4. AB + AB A. AB B. AB

More information

RISC-V 相关技术文档 1 RV32I 基本整数指令集 1.1 基本整数子集的程序员模型有 31 个通用寄存器 x1~x31, 它们保存了整数数值 寄存器 x0 是硬件连线的常数 0 没有硬件连线的子程序返回地址连接寄存器, 但是在一个过程调用中, 标准软件调用约定使用寄存器 x1 来保存返回地

RISC-V 相关技术文档 1 RV32I 基本整数指令集 1.1 基本整数子集的程序员模型有 31 个通用寄存器 x1~x31, 它们保存了整数数值 寄存器 x0 是硬件连线的常数 0 没有硬件连线的子程序返回地址连接寄存器, 但是在一个过程调用中, 标准软件调用约定使用寄存器 x1 来保存返回地 Risc-v 开发 Risc-v 基础知识 北京飞利信科技股份有限公司 2018 年 5 月 RISC-V 相关技术文档 1 RV32I 基本整数指令集 1.1 基本整数子集的程序员模型有 31 个通用寄存器 x1~x31, 它们保存了整数数值 寄存器 x0 是硬件连线的常数 0 没有硬件连线的子程序返回地址连接寄存器, 但是在一个过程调用中, 标准软件调用约定使用寄存器 x1 来保存返回地址 对于

More information

Bus Hound 5

Bus Hound 5 Bus Hound 5.0 ( 1.0) 21IC 2007 7 BusHound perisoft PC hound Bus Hound 6.0 5.0 5.0 Bus Hound, IDE SCSI USB 1394 DVD Windows9X,WindowsMe,NT4.0,2000,2003,XP XP IRP Html ZIP SCSI sense USB Bus Hound 1 Bus

More information

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco Windows RTEMS 1 Danilliu MMI TCP/IP 80486 QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos ecos Email www.rtems.com RTEMS ecos RTEMS RTEMS Windows

More information

C语言的应用.PDF

C语言的应用.PDF AVR C 9 1 AVR C IAR C, *.HEX, C,,! C, > 9.1 AVR C MCU,, AVR?! IAR AVR / IAR 32 ALU 1KBytes - 8MBytes (SPM ) 16 MBytes C C *var1, *var2; *var1++ = *--var2; AVR C 9 2 LD R16,-X ST Z+,R16 Auto (local

More information

MSP430ϵÁе¥Æ¬»úµÄÖ¸Áîϵͳ.pps [¼æÈÝģʽ]

MSP430ϵÁе¥Æ¬»úµÄÖ¸Áîϵͳ.pps [¼æÈÝģʽ] 作者 : 利尔达 MSP430 系列单片机的指令系统 1 CPU 内核组成 : 16 位的 (ALU) 算术运算单元 16 个寄存器 (PC SP SR R4~R15) 指令控制单元 2 存储器组织结构 3 外围模块寄存器地址 它们被分配在相应的字模块或字节模块当中 分配在 00-FFH 中为字节, 分配在 100-1FFH 中为字 4 寻址模式 : 5 指令格式 : 1) 书写格式标号指令助记符源操作数,

More information

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha CYPOK CYPOK 1 UltraEdit Project-->Install Language Tool: Language Suite----->hi-tech picc Tool Name ---->PICC Compiler Executable ---->c:hi-picinpicc.exe ( Command-line Project-->New Project-->File Name--->myc

More information

PCM-3386用户手册.doc

PCM-3386用户手册.doc PCM-3386 BBPC-4x86 10/100M PC/104 (Lanry technology Co. Ltd. Zhuhai) 38 1012836 (Address: Room 1012,Linhai Building,No. 38,west of Shihua Road,Zhuhai City,Guangdong Province,China) (post code)519015 (phone)0756-3366659

More information

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

Serial ATA ( Silicon Image SiI3114)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 5 (4) S A T A... 8 (5) S A T A... 10

Serial ATA ( Silicon Image SiI3114)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 5 (4) S A T A... 8 (5) S A T A... 10 Serial ATA ( Silicon Image SiI3114)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 5 (4) S A T A... 8 (5) S A T A... 10 Ác Åé å Serial ATA ( Silicon Image SiI3114) S A T A (1) SATA (2)

More information

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)

More information

A 2006 2 1.1 1.2 1.3 1.4 1.5 1 : 2. 3. 4 5 1.1 1.1.1 1 1.1.1 2 CPU = + = CPU + = 1.1.1 3 : : 1.1.1 4 ROM 1.1.2 1 1946 6 John von Neumann : (1) (2) ( ) (3) ( ) ( ) (PC) (?) 2 3 : ADD ADD AX BX CPU ALU

More information

(Microsoft Word - Motion Program \270\305\264\272\276\363 \307\245\301\366 \271\327 \270\361\302\367.doc)

(Microsoft Word - Motion Program \270\305\264\272\276\363 \307\245\301\366 \271\327 \270\361\302\367.doc) : TBFAT-G5MP-MN004-11 1 GX Series PLC Program Manual 2 GX Series PLC Program Manual Contents Contents...3 1... 1-1 1.1... 1-2 1.2... 1-3 1.2.1... 1-3 1.2.2... 1-4 1.2.3... 1-4 1.2.4... 1-6 1.3... 1-7 1.3.1...

More information

untitled

untitled MODBUS 1 MODBUS...1 1...4 1.1...4 1.2...4 1.3...4 1.4... 2...5 2.1...5 2.2...5 3...6 3.1 OPENSERIAL...6 3.2 CLOSESERIAL...8 3.3 RDMULTIBIT...8 3.4 RDMULTIWORD...9 3.5 WRTONEBIT...11 3.6 WRTONEWORD...12

More information

Microsoft PowerPoint - notes3-Simple-filled12

Microsoft PowerPoint - notes3-Simple-filled12 Generic Computer Organization CSE 30321 Computer Architecture I Lecture Notes 3: A Simple Computer: Simple12 And Design at Register Transfer Level Stored Program Machine (vonneumann Model) Instructions

More information

DR2010.doc

DR2010.doc DR/2010 HACH 11-8-96-2 HACH. DR/2010, / UL E79852 CSA C22.223 LR 58275 VDE GS 1015-92 FCC"A" 15 : AMADOR CORP, HACH. EN50 011/CISPR 11 "B" (EMI)/89/336/EEC/EMC: AMADOR CORP, HACH.. EN50 082-1( )/89/226/EEC

More information

Microsoft PowerPoint - chx09_org04_isa.ppt

Microsoft PowerPoint - chx09_org04_isa.ppt 计算机组织与系统结构 指令系统设计 Instruction Set Design ( 第四讲 ) 程旭 2009.3.5 指令系统设计 软件 指令系统 硬件 指令系统体系结构 (Instruction Set Architecture) ADD SUBTRACT AND OR COMPARE... 从程序员来观察 01010 01110 10011 10001 11010... 从计算机来观察 CPU

More information

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢   学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Java 类型 引用 不可变类型 对象存储位置 作用域 OOP

More information

数据库系统概论

数据库系统概论 所谓寻址方式, 就是指令中用于说明操 作数所在地或者所在地地址的方法 8088/8086 的寻址方式分为两类 : 关于寻找数据的寻址方式 关于寻找转移地址的寻址方式 下面讲关于数据的寻址方式时, 均以数 据传送指令 MOV 为例讲解 MOV 指令格式如下 : MOV DST, SRC 助记符 目的操作数 指令完成的功能 : (DST) 源操作数 (SRC) 一. 关于寻找数据的寻址方式 ( 共 8

More information

学习MSP430单片机推荐参考书

学习MSP430单片机推荐参考书 MSP430 16 MSP430 C MSP430 C MSP430 FLASH 16 1 CPU 16 ALU 16 PC SP SR R4~R15 2 3 00-FFH 100-1FFH 4 5 1 2 51 24 27 6 1 2 3 4 5 6 4 12 SR SP SR CPU SR CPU C Z N GIE CPUOff CPU OscOff SCG0 SCG1 CPU EXIT SP

More information

<4D6963726F736F667420576F7264202D20C7B6C8EBCABDCFB5CDB3C9E8BCC6CAA6B0B8C0FDB5BCD1A75FD1F9D5C22E646F63>

<4D6963726F736F667420576F7264202D20C7B6C8EBCABDCFB5CDB3C9E8BCC6CAA6B0B8C0FDB5BCD1A75FD1F9D5C22E646F63> 因 为 路 过 你 的 路, 因 为 苦 过 你 的 苦, 所 以 快 乐 着 你 的 快 乐, 追 逐 着 你 的 追 逐 内 容 简 介 本 书 根 据 2005 年 下 半 年 实 施 的 全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 ) 考 试 嵌 入 式 系 统 设 计 师 级 考 试 大 纲 精 神, 在 深 入 研 究 历 年 计 算 机 技 术 与 软

More information

提纲 1 2 OS Examples for 3

提纲 1 2 OS Examples for 3 第 4 章 Threads2( 线程 2) 中国科学技术大学计算机学院 October 28, 2009 提纲 1 2 OS Examples for 3 Outline 1 2 OS Examples for 3 Windows XP Threads I An Windows XP application runs as a seperate process, and each process may

More information

3 程序的机器级表示 2017 年 3 月 11 日 11: 计算机执行机器代码, 用字节序列编码低级的操作, 包括处理数据 管理存储器 读写存储在设备上的数据, 以及利用网络通信 通常情况下, 现代的优化编译器产生的代码至少与一个熟练的汇编语言程序员手工编写的代码一样有

3 程序的机器级表示 2017 年 3 月 11 日 11: 计算机执行机器代码, 用字节序列编码低级的操作, 包括处理数据 管理存储器 读写存储在设备上的数据, 以及利用网络通信 通常情况下, 现代的优化编译器产生的代码至少与一个熟练的汇编语言程序员手工编写的代码一样有 3 程序的机器级表示 2017 年 3 月 11 日 11:29 2. 3. 4. 计算机执行机器代码, 用字节序列编码低级的操作, 包括处理数据 管理存储器 读写存储在设备上的数据, 以及利用网络通信 通常情况下, 现代的优化编译器产生的代码至少与一个熟练的汇编语言程序员手工编写的代码一样有效 用高级语言编写的程序可以在很多不同的机器上编译和执行, 而汇编代码则是与特定机器密切相关的 学习机器代码的意义在于,

More information

Ch03_嵌入式作業系統建置_01

Ch03_嵌入式作業系統建置_01 Chapter 3 CPU Motorola DragonBall ( Palm PDA) MIPS ( CPU) Hitachi SH (Sega DreamCast CPU) ARM StrongARM CPU CPU RISC (reduced instruction set computer ) CISC (complex instruction set computer ) DSP(digital

More information

Panaboard Overlayer help

Panaboard Overlayer help Panaboard Overlayer Image Capture Software for Electronic Whiteboard (Panaboard) ... 3... 5... 6... 13...14 Panaboard Overlayer 1. 2. 3. 4. 4-1. 4-2. [ / ] ( ) 4-3. 5. 6. 6-1. 6-2. [ / ] ( ) 7. Panaboard

More information

指令系统 可分成如下 6 类 : 数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 程序控制指令 处理器控制指令 2015 年 3 月 26 日星期四 8 时 41 分 27 秒 2

指令系统 可分成如下 6 类 : 数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 程序控制指令 处理器控制指令 2015 年 3 月 26 日星期四 8 时 41 分 27 秒 2 第 3 章 8086 的寻址方式和指令系统 (2) 2015 年 3 月 26 日星期四 8 时 41 分 27 秒 1 3.3 8086 指令系统 可分成如下 6 类 : 数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 程序控制指令 处理器控制指令 2015 年 3 月 26 日星期四 8 时 41 分 27 秒 2 3.3.1 数据传送指令 可实现 存储器 立即数 段寄存器 CS DS

More information

51 C 51 isp 10 C PCB C C C C KEIL

51 C 51 isp 10   C   PCB C C C C KEIL http://wwwispdowncom 51 C " + + " 51 AT89S51 In-System-Programming ISP 10 io 244 CPLD ATMEL PIC CPLD/FPGA ARM9 ISP http://wwwispdowncom/showoneproductasp?productid=15 51 C C C C C ispdown http://wwwispdowncom

More information

542 33 1 20 20 6 435 15 311 48 1 4 3 2 0 8 18 200 4 1,888 305 62 2 2 3 61 42 1,346 47 390 40 12 2 2 6 41 8 7 3 3 1 18 301 1 19 24 14 3 3 12 335 110 1 1 1, 582 45 76 547 1 147 46 1,103 96 1 22 8 6,721 70

More information

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor 1 4.1.1.1 (Load) 14 1.1 1 4.1.1.2 (Save) 14 1.1.1 1 4.1.2 (Buffer) 16 1.1.2 1 4.1.3 (Device) 16 1.1.3 1 4.1.3.1 (Select Device) 16 2 4.1.3.2 (Device Info) 16 2.1 2 4.1.3.3 (Adapter) 17 2.1.1 CD-ROM 2 4.1.4

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

C/C++ - 字符串与字符串函数

C/C++ - 字符串与字符串函数 C/C++ Table of contents 1. 2. 3. 4. 1 char C 2 char greeting [50] = " How " " are " " you?"; char greeting [50] = " How are you?"; 3 printf ("\" Ready, go!\" exclaimed John."); " Ready, go!" exclaimed

More information

计算机组成原理 第二章 指令系统 中科大 11 系 李曦

计算机组成原理 第二章 指令系统 中科大 11 系 李曦 计算机组成原理 第二章 指令系统 中科大 11 系 李曦 Computer Architecture & Organization Instruction-Set Processor Design Architecture (ISA) programmer/compiler view functional appearance to its immediate user/system programmer

More information

<4D F736F F D20B5DAC1F9D5C2CFB0CCE2B4F0B0B8A3A8CDF8D5BEA3A92E646F63>

<4D F736F F D20B5DAC1F9D5C2CFB0CCE2B4F0B0B8A3A8CDF8D5BEA3A92E646F63> 第六章中央处理器 2. 简单回答下列问题 ( 参考答案略 ) ( 1) CPU 的基本组成和基本功能各是什么? ( 2) 取指令部件的功能是什么? ( 3) 控制器的功能是什么? ( 4) 为什么对存储器按异步方式进行读写时需要 WMFC 信号? 按同步方式访问存储器时, CPU 如何实现存储器读写? ( 5) 单周期处理器的 CPI 是多少? 时钟周期如何确定? 为什么单周期处理器的性能差? 元件在一个指令周期内能否被重复使用?

More information

Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provided by SUNPLUS TECHNOLO

Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provided by SUNPLUS TECHNOLO Car DVD New GUI IR Flow User Manual V0.1 Jan 25, 2008 19, Innovation First Road Science Park Hsin-Chu Taiwan 300 R.O.C. Tel: 886-3-578-6005 Fax: 886-3-578-4418 Web: www.sunplus.com Important Notice SUNPLUS

More information

因 味 V 取 性 又 鸟 U 且 最 大 罗 海 惜 梅 理 春 并 贵 K a t h l ee n S c h w e r d t n er M f l e z S e b a s t i a n C A Fe rs e T 民 伊 ' 国 漳 尤 地 视 峰 州 至 周 期 甚 主 第 应

因 味 V 取 性 又 鸟 U 且 最 大 罗 海 惜 梅 理 春 并 贵 K a t h l ee n S c h w e r d t n er M f l e z S e b a s t i a n C A Fe rs e T 民 伊 ' 国 漳 尤 地 视 峰 州 至 周 期 甚 主 第 应 国 ' 东 极 也 直 前 增 东 道 台 商 才 R od e ric h P t ak 略 论 时 期 国 与 东 南 亚 的 窝 贸 易 * 冯 立 军 已 劳 痢 内 容 提 要 国 与 东 南 亚 的 窝 贸 易 始 于 元 代 代 大 规 模 开 展 的 功 效 被 广 为 颂 扬 了 国 国 内 市 场 窝 的 匮 乏 窝 补 虚 损 代 上 流 社 会 群 体 趋 之 若 鹜 食 窝

More information

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344>

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344> 1. 請 問 誰 提 出 積 體 電 路 (IC) 上 可 容 納 的 電 晶 體 數 目, 約 每 隔 24 個 月 (1975 年 更 改 為 18 個 月 ) 便 會 增 加 一 倍, 效 能 也 將 提 升 一 倍, 也 揭 示 了 資 訊 科 技 進 步 的 速 度? (A) 英 特 爾 (Intel) 公 司 創 始 人 戈 登. 摩 爾 (Gordon Moore) (B) 微 軟 (Microsoft)

More information

101

101 Lecture 04 Modeling, Anlysis nd Simultion in Logic Design 逻辑设计中的建模 分析与仿真 Dr. Engineering Design Process 工程设计过程 定义问题研究勾画可能的解答 Identify nd define prolem reserch sketch possile solutions 建模 Modeling 分析 Anlysis

More information

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1 21 , 7, Windows,,,, : 010-62782989 13501256678 13801310933,,,, ;,, ( CIP) /,,. : ;, 2005. 11 ( 21 ) ISBN 7-81082 - 634-4... - : -. TP316-44 CIP ( 2005) 123583 : : : : 100084 : 010-62776969 : 100044 : 010-51686414

More information

DPJJX1.DOC

DPJJX1.DOC 8051 111 2K 1 2 3 ' ' 1 CPU RAM ROM / A/D D/A PC CPU 40 68 10 20 8 51 PIII 8051 2 MCS51 8051 8031 89C51 8051 8031 89C51? MCS51 INTEL INTEL 8031 8051 8751 8032 8052 8752 8051 8051 8051 MCS51 8031 8031

More information

untitled

untitled 1 5 IBM Intel 1. IBM 第 1/175 页 第 2/175 页 第 3/175 页 80 第 4/175 页 2. IBM 第 5/175 页 3. (1) 第 6/175 页 第 7/175 页 第 8/175 页 = = 第 9/175 页 = = = = = 第 10/175 页 = = = = = = = = 3. (2) 第 11/175 页 第 12/175 页 第 13/175

More information

Andes Technology PPT Temp

Andes Technology PPT Temp 晶心科技線上技術研討會 AndesCore 便捷的全 C 嵌入式编程 晶心科技市場及技術服務部毛礼杰軟件經理 WWW.ANDESTECH.COM 大纲 系统初始化介绍 异常和中断说明 全 C 语法例子说明 总结 2 CPU 相关特性 1: 中断向量表 系统初始化 (1) 2: 系统寄存器 通常需要用 assembly( 汇编 / 组合 ) 语言来操作 AndesCore 全 C 嵌入式编程 C 扩展语法

More information