1 / 47

Riistvarapõhine programmeerimine

Riistvarapõhine programmeerimine. Loeng 4 Arvuti käsustik, aritmeetilised käsud. 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. Arvuti käsustik II. Kodeerimine – Basic Instruction Encoding.

Download Presentation

Riistvarapõhine programmeerimine

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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

More Related