Click here to load reader

第四章 指令系统

  • Upload
    taylor

  • View
    53

  • Download
    5

Embed Size (px)

DESCRIPTION

第四章 指令系统. §4.1 指令系统组成. ※ 术语: 机器指令 — 要求 硬件直接实现 某种运算或操作的 命令 指令系统 — 所有 机器指令 的 集合 ( Instruction Set ). ※ 指令系统与软硬件关系:. 必须 相 一致. 应用需求. 计算机软件. 计算机硬件. 应用结果. 形成. 执行. 实现. ( 按 约定 ). ( 按 约定 ). 指令系统. 按 一定格式 编写 操作命令. 按 一定格式 实现 操作功能. 指令格式: 操作功能 - 操作命令 间的 约定. - PowerPoint PPT Presentation

Citation preview

PowerPoint

6(3) * CC-1JZ 2000 2000 2010 JMP 2019 AA+1 200020102019 CALL 2200AA+1 2000 20102011 CALL **RETURN 2200 2280 (JZ/JNZ) ()()()()(/)8 * *OPA1A2OPD(A1) OPER (A2)OPD?A1/A2/X??OPD?? *12nA1 A2OP1AOP2A1 A2OPn * 846 (2) 2 (3b/4b) OP7(OPD)3b~4b OPD1(1B) 1~2REGMEMIMME OPD 4(ADD)() 13842(Operation,OP) * ARA(RA) A[A][A] ()(1) *REGMEMI/O() R0(R1)R0[0100H][0100H](R2) *8b/16b/(//) *2()1# REG0# REG0100H# 0# REG2# REG0100H# 5(2) *+1-1 R0(R1)+[0100H]R2(R2)+1 () R0(R0)&(R1)R0~(R0) *8b/16b// 8b/16b/ OPDOPD *13(+1AA+BCA+B) *ZF()SF() OF()CF(/) () ALU1# REG0100H# 0# REG2# REG12# REG0# REG1# REG 0# REG0# REG0# REG7 * *10()(4) */// R0(R0) > (R2) *8b/16b// 8b/16b/ *2(5) 91 *() 3 183OPD? 8 816 816OPD:OPD:0 0 00 0 00 0 00 0 00 0 1 0 0 10 1 00011000 OPD: () 0 0 00 0 00 0 00 0 00 0 1 0 0 10 1 01100101010101010010 2(7)0.40.260.150.060.050.040.040.080.040.040.050.060.150.260.401I7 I6 I5 I4 I3 I2 I100.11100.19100.34100.60101.0010IiPiI1I2I3I4I5I6I70.400.260.150.060.050.040.0400000101001110010111001011011100111011111011111PiIi3.002.321400011011 0011 0111 1011 112.382 L= log2 () *812 312221/ 8 816 8160 0 0 0 00 0 0 0 10 0 0 1 00 0 0 1 10 0 1 0 0 0 0 1 0 10 1 0 0 0A1A2A1A2A1A2A1A2AA1A2A1A2010001 2D=0A1 D=1A2AA1A2A1A2DD*A1A2A1A2A1A2A1A2DDDDAA1A2A1A2 A1A21214 =16-6-6=4=24-P-Q 41663 PQ ()XYM =16104 X=[(24-Y)26-M]26M=(24-Y)26-X2-6A1A2A?QPA1A2AY MX(24-Y)26-M(24-Y)26154.2 1REG REGCPU() *REGREG *REGREGREGR0 =000R3=110 =111R7=001R4 2REG *2R0 R3R7R4 1REG=000=011 =100 =111 OPi wF2 xxxwOPOPD17 3~ 0 7~ 411~ 815~12C(N=3)A(N=0)B(N=1)C()D(N=7)D()E(N=9)F(N=10)A(N=0)B(N=2)C(N=4)D(N=8)E(N=10)F(N=12) (N) :202122NXXXXXXX0XX00 23() * () MEM (CPU) *x86 OPi 1 D D OPi 0F1DF1184 * ()+ */ (PUSH/)(POP/)AAB(B)ABA 619 * --REG ABAA * -- SP() SP(SP)-X [(SP)] [(SP)]SP(SP)+XCPU CPUREG REG01218000H 803FH8040HSP23CALL 2010DB/100B0C100BB+A[C]CC-1 JZ 2016JMP -4RETURN200020012010201120122013201420152016 2C Sort() D=B/100 void Sort(){ int B=0 int C=100 do {B=B+A[C] C-- if (C==0) goto AA } while (1) AA: return}6EA=2016() (PC)+1()JZ(ZF)EA=(PC)-4 ()CALLRETURNEA=2010()2001()EA=() ()EA=(PC)+1 () EA=(PC)+1 ()EA=(PC)+1 ()EA=(PC)+1 ()EA=(PC)+1 () ()PC(PC)+1 PCJZJMPEA(PC)+128 3CPUPC(PC)10100H0101H EA=0120H[0101H]= [0101H]=92HEA= A()F8 EA=(PC)+DISP(PC) (PC)=0100H+2=0102H (PC)=0102H [DISP]=92H=1001 0010BDISP=-6EH EA=(PC)+DISP=0102H-6EH=0094H DISP=0120H-0102H=+001 1110B [0101H]=A=[DISP]=0001 1110=1EH299(Implied) /() * * OPD/OPDREG (a)CPUAC(AC)+[M]AC (b)EA=(PC)+1PC (c)CALL/RET314.3 1 *2 *1 32 1 OP DT DLDF1 A1DF2 A21: OPj DTj DLjik OPi DTi DLiDF1 A1DF2 A2 OPk DTk DLk DF AjDF1 A1DF2 A2 *2n n/ * - -32372 200() *[+]0B1B0B1B0B1B0B1B1B2B0B1B0B1B0124B0124B * SSE8/168/1632/64[ ] MODREG/OPR/M 2b 3b 3bSSINDEXBASE 2b 3b 3bLOCKREP

3741R/MMOD=11MOD=000110W=0W=1MOD=00MOD=01MOD=10000 AL AXBX+SIBX+SI+DISP8BX+SI+DISP16001 CL CXBX+DIBX+DI+DISP8BX+DI+DISP16010 DL DXBP+SIBP+SI+DISP8BP+SI+DISP16011 BL BXBP+DIBP+DI+DISP8BP+DI+DISP16100 AH SPSISI+DISP8SI+DISP16101 CH BPDIDI+DISP8DI+DISP16110 DH SIBP+DISP8BP+DISP16111 BH DIBXBX+DISP8BX+DISP16 R/MMOD+R/M [+DISP]MOD REGREG(MOD=11R/M) 1R/M [(BX)] R/M [(BX)+70H]01REG1110111000000REG111 2 (DX)[(SI)] (DL)[(SI)]0001010044 REG-REG 8 OPD() REG-MEM 16 OPDD() REGREG=log28=3 MEMRIDISPRI=log22=1 DISPOP-LREG15 12 11 10 8 7 6 0DISPDRID=0REGD=1MEM1()+6()=7OP-SREG-D7 6 5 4 3 2 1 0REG-SOP-SREGDREG45 58CPU4REG(R0R3)PC(PC)+1 A[0]++A[99]A + ()EA=(PC)+2

+ ()EA=(PC)+1+ ()EA=(PC)+1+ ()EA=(PC)+1+ ()EA=(PC)+1+ ()EA=(PC)+1+ ()EA=(PC)+1 ()EA=ADDR ()EA=(PC)+2 ()EA=(PC)+DSP ()EA=(PC)+1RD0 0 0 0RDRDRSRD4 2 2RDVALRSRSADDRRD (MOV): RDVAL

(LD) : RD[(RS)](ST) : [(RD)](RS)(ADD): RD(RD)+(RS) RD(RD)+[(RS)](INC): RD(RD)+1(DEC): RD(RD)-1(JNZ): ZF=0 ZF=10 0 1 00 0 1 10 1 00 1 1 00 1 1 11 0 0RDRS0 1 0DISP1 0 0101048MIPS1 512 OPD=IMMEIROPD=(R)*EA=OFFSETEA=(PC)+DISPEA=(B)+DISP: R3232bR0=0 3232b1664b /B32 OFFSET26EA=PC4+OFFSET+006b5b5b5b5b6bR-OPERRSRTRDSHAMTFUNCI-OPERRSRTIMME/DISPJ-OPEROFFSET492 (323)OPERFUNCRSREGRDREGSHAMTIMMEDISPOFFSET * 4REGIMMEMEM3 OPD/() 12 (1OPER/)OPERRILoad/StoreJ4950 6R-I-J-OPER000000000001~011111100000~111111R-OPER=100000I-OPER=000001OPER=000010R1(R2)+(R3)R1(R2)+22R1[(R2)+0600H] R1(R2)+(R3)R-00000000010000110000100000100000 OPER RS RT RD SHAMT FUNC R1(R2)+22I-00000100010000010000 0000 0001 0110 OPER RS RT IMME/DISP R1[(R2)+0600H]I-00001000010000010000 0110 0000 0000 OPER RS RT IMME/DISP51Power PC1 612 OPD=IRIROPD=(R)EA=AEA=(PC)+AEA=(B)+AEA=(B)+(I)R32 B32 I32522 (324) * OPERDISPALOPERRD/OPTIONRS/CRIMME/DISPALOPERRD/RSRS/RDRS/SHAMTFUNCROPERRDRSRSRSFUNCROPERFUNCDISPIMMERDRSROPTIONCRA/L6 5 5 5 5 6 4REGOPD/ 12 (1OPER/)534.4 /TCPU=INCPITC

(IN) (CPI)CISCRISC5354CISC (Complex Instruction Set Computer) *CISC *CISC VLSI *CISC REG-MEM (TC)56CISCRISC *CISCRISC () RISCVLSI CISC *CISCRISC RISCRISCRISC CISCRISCCISCCISC+RISC P164 456 P164 91011