CS4100计算机结构InstructionSetArchitecture.ppt

  1. 1、本文档共145页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CS4100计算机结构InstructionSetArchitecture

(Make noise) Back row! You in the (describe clothing)! I do a load byte from t0 to t1. What do I get in t1? F7? Is there anything you would like to add to your statement? So your final answer is F7? (Alarm.wav) Instruction Set-* Arrays vs. Pointers Array indexing involves Multiplying index by element size Adding to array base address Pointers correspond directly to memory addresses Can avoid indexing complexity Instruction Set-* Example: Clearing an Array clear1(int array[], int size) { int i; for (i = 0; i size; i += 1) array[i] = 0; } clear2(int *array, int size) { int *p; for (p = array[0]; p array[size]; p = p + 1) *p = 0; } move $t0,$zero # i = 0 loop1: sll $t1,$t0,2 # $t1 = i * 4 add $t2,$a0,$t1 # $t2 = # array[i] sw $zero, 0($t2) # array[i] = 0 addi $t0,$t0,1 # i = i + 1 slt $t3,$t0,$a1 # $t3 = # (i size) bne $t3,$zero,loop1 # if (…) # goto loop1 move $t0, $a0 # p = array[0] sll $t1, $a1, 2 # $t1 = size * 4 add $t2,$a0,$t1 # $t2 = # array[size] loop2: sw $zero,0($t0) # Memory[p] = 0 addi $t0,$t0,4 # p = p + 4 slt $t3,$t0,$t2 # $t3 = #(parray[size]) bne $t3,$zero,loop2 # if (…) # goto loop2 Instruction Set-* Comparison of Array vs. Ptr Multiply “strength reduced” to shift (strength reduction) Array version requires shift to be inside loop Part of index calculation for incremented i c.f. incrementing pointer Compiler can achieve same effect as manual use of pointers Eliminating array address calculations within loop (induction variable elimination): 6 instructions reduced to 4 in loop Better to make program clearer and safer Instruction Set-* Outline Instruction set architecture (using MIPS ISA as an example) Operands Register operands and their organization Memory operands, data tran

文档评论(0)

189****2507 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档