Download
riistvarap hine programmeerimine n.
Skip this Video
Loading SlideShow in 5 Seconds..
Riistvarapõhine programmeerimine PowerPoint Presentation
Download Presentation
Riistvarapõhine programmeerimine

Riistvarapõhine programmeerimine

127 Views Download Presentation
Download Presentation

Riistvarapõhine programmeerimine

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Riistvarapõhine programmeerimine Loeng 4 Arvuti käsustik, aritmeetilised käsud

  2. Arvuti käsustik I • Aritmeetilised käsud • Loogilised käsud • Andmelaadimise käsud • Sisend/väljund käsud • Siirdekäsud • Stringikäsud • Muud käsud ID218 Riistvaralähedane programmeerimine

  3. Arvuti käsustik II Kodeerimine – Basic Instruction Encoding ID218 Riistvaralähedane programmeerimine

  4. Arvuti käsustik III Mov ax, bx iii = 110 mov reg, reg rr = 00 ax mmm = 001 bx 11000001 = 0C1h ID218 Riistvaralähedane programmeerimine

  5. Arvuti käsustik IV Mov ax, [1000] iii = 110 mov reg, mem rr = 00 ax mmm = 110[1000] 11000110 00000000 00010000 0C6h, 00h, 10h ID218 Riistvaralähedane programmeerimine

  6. Arvuti käsustik V Kodeerimine – Single Operand Instruction Encoding ID218 Riistvaralähedane programmeerimine

  7. Arvuti käsustik VI Kodeerimine – Zero Operand Instruction Encoding ID218 Riistvaralähedane programmeerimine

  8. Arvuti käsustik VII Kodeerimine – JUMP Instruction Encoding ID218 Riistvaralähedane programmeerimine

  9. Signed / Unsigned I J byte ? Unsigned byte j K sbyte ? Signed byte k I db ? Nosigned byte k ID218 Riistvaralähedane programmeerimine

  10. Signed / unsigned II Mov j, -5; 0xFB Unsigned j (0 - 255), 251 Mov k, 255; 0xFF Signed k (-128 - 127), -128 ID218 Riistvaralähedane programmeerimine

  11. Flag Register ID218 Riistvaralähedane programmeerimine

  12. Aritmeetilised käsud • Liitmise käsud • Lahutamise käsud • Korrutamise käsud • Jagamise käsud ID218 Riistvaralähedane programmeerimine

  13. Liitmise käsud I • Add A, B • Adc A, B • Inc A ID218 Riistvaralähedane programmeerimine

  14. Liitmise käsud II Add A, B A = A + B Lipud: Signed Unsigned Of X Cf X Sf X X Zf X X Af X X Pf X X ID218 Riistvaralähedane programmeerimine

  15. Liitmise käsud III Adc A, B A = A + B + Cf Lipud: Signed Unsigned Of X Cf X Sf X X Zf X X Af X X Pf X X ID218 Riistvaralähedane programmeerimine

  16. Liitmise käsud IV J:= K + M mov ax, K add ax, M mov J, ax • Ainult üks mäluoperand • Ühe pikkusega operandid ID218 Riistvaralähedane programmeerimine

  17. Liitmise käsud V J := K + M + N + P mov ax, K add ax, M add ax, N add ax, P mov J, ax ID218 Riistvaralähedane programmeerimine

  18. Liitmise käsud VI J := K + J mov ax, J mov bx, K add ax, bx mov J, ax ID218 Riistvaralähedane programmeerimine

  19. Liitmise käsud VI J := K + J mov ax, J add ax, K mov J, ax ID218 Riistvaralähedane programmeerimine

  20. Liitmise käsud VII J := K + J mov ax, K add J, ax ID218 Riistvaralähedane programmeerimine

  21. Liitumise käsud VIII add al, 2 ;Two bytes long add bl, 2 ;Three bytes long add ax, 2 ;Three bytes long add bx, 2 ;Four bytes long ID218 Riistvaralähedane programmeerimine

  22. Liitmise käsud IX Inc A A = A + 1 Lipud: Signed Unsigned Of X Cf - - Sf X X Zf X X Af X X Pf X X ID218 Riistvaralähedane programmeerimine

  23. Lahutamise käsud I • Sub A, B • Sbb A, B • Dec A • Cmp A, B • Neg A ID218 Riistvaralähedane programmeerimine

  24. Lahutamise käsud II Sub A, B A = A - B Lipud: Signed Unsigned Of X Cf X Sf X X Zf X X Af X X Pf X X ID218 Riistvaralähedane programmeerimine

  25. Lahutamise käsud III Sbb A, B A = A – B - Cf Lipud: Signed Unsigned Of X Cf X Sf X X Zf X X Af X X Pf X X ID218 Riistvaralähedane programmeerimine

  26. Lahutamise käsud IV Dec A A = A - 1 Lipud: Signed Unsigned Of X Cf - - Sf X X Zf X X Af X X Pf X X ID218 Riistvaralähedane programmeerimine

  27. Lahutamise käsud V J := K – J mov ax, K sub J, ax J = J – K ??? ID218 Riistvaralähedane programmeerimine

  28. Lahutamise käsud VI J := K – J mov ax, K sub ax, J mov J, ax J = K – J !!! ID218 Riistvaralähedane programmeerimine

  29. Lahutamise käsud VII J := J - (K + M) J:=J – K – M mov ax, J sub ax, K ; J:=J - K sub ax, M ; J:=J - M mov J, ax ID218 Riistvaralähedane programmeerimine

  30. Lahutamise käsud VIII J := J - (K + M) mov ax, K add ax, M ; K + M sub J, ax ; J:= J – (K + M) ID218 Riistvaralähedane programmeerimine

  31. Lahutamise käsud IX Cmp A, B A – B => FR If ((Sf=0)&(Of=1)) or ((Sf=1)&(Of=0)) then A < B If ((Sf=0)&(Of=0)) or ((Sf=1)&(Of=1)) then A > B ID218 Riistvaralähedane programmeerimine

  32. Lahutamise käsud X A BS O ------ ------ - - FFFF (-1) - FFFE (-2) 0 0 8000 (-32768) - 0001 (1) 0 1 FFFE (-2) - FFFF (-1) 1 0 7FFF (32767) - FFFF (-1) 1 1 ID218 Riistvaralähedane programmeerimine

  33. Lahutamise käsud XI Neg A A = 0 - A Lipud: Of X Cf X Sf X Zf X Af X Pf X ID218 Riistvaralähedane programmeerimine

  34. Lahutamise käsud XII J := -K mov ax, K neg ax mov J, ax J := - J neg J ID218 Riistvaralähedane programmeerimine

  35. Korrutamise käsud I Unsigned • Mul reg • Mul mem Signed • Imul reg • Imul mem ID218 Riistvaralähedane programmeerimine

  36. Korrutamise käsud II mul operand8 imul operand8 ax := al * operand8 ID218 Riistvaralähedane programmeerimine

  37. Korrutamise käsud III mul operand16 imul operand16 dx:ax := ax * operand16 ID218 Riistvaralähedane programmeerimine

  38. Korrutamise käsud IV Lipud: Of X Cf X Af X ; ei ole tähtis Pf X ; ei ole tähtis Sf X ; ei ole tähtis Zf X ; ei ole tähtis ID218 Riistvaralähedane programmeerimine

  39. Jagamise käsud I Unsigned • Div reg • Div mem Signed • Idiv reg • Idiv mem ID218 Riistvaralähedane programmeerimine

  40. Jagamise käsud II divoperand8 idivoperand8 al := ax / operand8 ah := jääk ID218 Riistvaralähedane programmeerimine

  41. Jagamise käsud III divoperand16 idivoperand16 ax := dx:ax / operand16 dx := jääk ID218 Riistvaralähedane programmeerimine

  42. Jagamise käsud IV Lipud: Af, Cf, Of, Pf, Sf, Zf - ei oma tähtsust Hoiatus: Jagatav => 2 * (Jagaja) Jagaja != 0 (Arvuti mõistes) Jagatis => (Jagatav) / 2 0800h : 2 = 0400h ??? ID218 Riistvaralähedane programmeerimine

  43. Jagamise käsud V J := K / M (unsigned) mov ax, K ;Lugeja mov dx, 0 ;Pikk lugeja ; < Jagaja != 0 > div M ;Jagamine mov J, ax ID218 Riistvaralähedane programmeerimine

  44. Jagamise käsud VI J := K / M (signed) mov ax, K ;Lugeja cwd ;Pikk lugeja ; < Jagaja != 0 > idiv M ;Jagamine mov J, ax ID218 Riistvaralähedane programmeerimine

  45. Jagamise käsud VII J := (K*M)/P mov ax, K imul M ; 32-bit korrutis idiv P; 32-bit jagatav mov J, ax ID218 Riistvaralähedane programmeerimine

  46. Kokkuvõte I Aritmeetilised käsud: • Liitmine • Lahutamine • Korrutamine • Jagamine ID218 Riistvaralähedane programmeerimine

  47. Kokkuvõte II Aritmeetilised käsud: • Signed operand • Unsigned operand • 8-bit operand • 16-bit operand ID218 Riistvaralähedane programmeerimine