1 / 36

Logische bewerkingen

Logische bewerkingen. Over het toepassen van AND, OR, NOT en EXOR bewerkingen in programmeeromgevingen. Inleiding.

Download Presentation

Logische bewerkingen

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. Logische bewerkingen Over het toepassen van AND, OR, NOT en EXOR bewerkingen in programmeeromgevingen

  2. Inleiding Zowel in lagere als hogere programmeertalen wordt soms met bitpatronen gemanipuleerd. Meestal als er gewerkt wordt met in- en output poorten. De logische bewerkingen die hier voor worden toegepast zijn: AND voor het resetten van bits, OR voor het setten van bits EXOR voor het inverteren van bitsHoe dat in zijn werk gaat leer je in dit instructieprogramma beginnen

  3. Menu IN en OUT bewerkingen Resetten met AND Inverteren met EXOR Setten met OR Stoppen

  4. IN- en OUT bewerkingen b0 IN b7 Via poorten kunnen binaire waarden vanuit de buitenwereld in de computer worden ingelezen.Een poort heeft een poortadres (ook wel poortnummer genoemd). In dit geval is dat poortadres 0379H b.v. poort 0379H

  5. IN- en OUT bewerkingen 5V b0 IN 8x b7 Op de ingangen van de INPUT-poort kunnen schakelaars zijn aangesloten. Staat de schakelaar in de bovenste stand, dan is de ingang 1. In de onderste stand is dat 0. b.v. poort 0379H

  6. IN- en OUT bewerkingen 5V b0 0 IN 1 0 0 1 8x 0 1 0 b7 01010010 Bij een IN instructie wordt de waarde van de ingangen in de computer geladen.In assembly (machinetaal) is dit b.v. IN AL,DXIn een hogere taal (VB) is dit waarde = INPORT (&H379) b.v. poort 0379H

  7. IN- en OUT bewerkingen 01010010 waarde De binaire waarde staat hu in een register en heeft in een hogere taal een naam. Hier is dat “waarde”. Met deze variabele “waarde” kunnen we dingen doen.

  8. IN- en OUT bewerkingen 01010010 waarde De waarde kan je weergeven als:01010010B of %01010010 (binair) of als52H of $52 (hexadecimaal) of als80 (decimaal)

  9. IN- en OUT bewerkingen 01101110 bitpatr1 Met out instructies kan je een bepaalde waarde ( in dit geval de variabele bitpatr1) naar een outputpoort sturen.In assembly (machinetaal) is dit b.v. OUT DX,ALIn een hogere taal (VB) is dit OUTPORT (&H37A) = waarde

  10. IN- en OUT bewerkingen b0 OUT 0 1 1 1 0 1 1 0 b7 01101110 bitpatr1 b.v. poort 037AH Met out instructies kan je een bepaalde waarde ( in dit geval de variabele bitpatr1) naar een outputpoort sturen.In assembly (machinetaal) is dit b.v. OUT DX,ALIn een hogere taal (VB) is dit OUTPORT (&H37A) = waarde

  11. IN- en OUT bewerkingen b0 OUT 0 1 1 1 0 1 1 0 b7 01011110 bitpatr1 De uitgangen van de poort worden nu 0 en 1 gemaakt in het bitpatroon uit de variabele.Welke waarde heeft de variabele bitpatr1 uitgedrukt in hex en dec? Schrijf dat op en kijk dan pas naar het volgende scherm.

  12. IN- en OUT bewerkingen b0 OUT 0 1 1 1 0 1 1 0 b7 01011110 bitpatr1 Kan je deze conversie niet maken, kijk dan nog eens naar het instructieprogramma talstelsels uit projectperiode 3 01011110B = 5EH = 94

  13. Resetten met AND 5V b0 0 IN ? ? ? ? 8x ? ? ? b7 waarde We hebben een waarde ingelezen via een poort en willen in ons programma iets doen als de schakelaar in de bovenste stand staat. Bitje b0 is dan 1.Hier is sprake van een IF….(bitje0=1) …THEN situatie b.v. poort 0379H

  14. waarde = INPORT (&H379) Resetten met AND 5V b0 0 IN ? ? ? ? 8x ? ? ? b7 xxxxxxx0 waarde De toestand van de andere ingangen is onbekend en doet er nu niet toe. We noemen dit don’t care conditions. We schrijven hiervoor een X. b.v. poort 0379H

  15. Resetten met AND xxxxxxx0 waarde Om de toestand van bitje b0 te kunnen testen moeten we alle andere bits eerst resetten. Dit doen we met de AND instructie.

  16. Resetten met AND A B F A & F 0 0 0 B 0 1 0 1 0 0 1 1 1 xxxxxxx0 waarde We kennen de AND functie. Bekijk de waarheidstabel goed.

  17. A & 0 Resetten met AND A B F 0 0 0 0 A 0 1 0 & A 1 1 0 0 1 1 1 xxxxxxx0 waarde Je kunt ook zeggen:AND-en met een 0 is altijd 0AND-en met een 1 verandert nietsof: A · 0 = 0 en A · 1 = A

  18. Resetten met AND A B F 0 0 0 0 1 0 1 0 0 1 1 1 xxxxxxx0 waarde Terug naar de ingelezen waarde:Als ik alle bitjes wil resetten behalve bit 0, dan moet ik de waarde AND-en met 00000001B. Bit bij bit wordt nu een AND bewerking uitgevoerd. 00000001 AND

  19. Resetten met AND A B F 0 0 0 0 1 0 1 0 0 1 1 1 xxxxxxx0 waarde Alle bits worden gereset behalve bit 0. Deze was al nul en blijft nul (rood). 00000001 AND 00000000

  20. Resetten met AND Bit 0 was 1 Bit 0 was 0 xxxxxxx1 waarde xxxxxxx0 waarde Bit 0 blijft staan terwijl de rest wordt gereset. 00000001 00000001 AND AND 00000001 00000000

  21. waarde = (INPORT (&H379) AND &H01) Resetten met AND 5V b0 0 IN ? ? ? ? 8x ? ? ? b7 xxxxxxx0 waarde Kijk goed naar de instructie en de figuur. De AND functie met 01H (=00000001B) voeren we in een keer uit. b.v. poort 0379H 00000001 AND 00000000 waarde

  22. waarde = (INPORT (&H379) AND &H01) Resetten met AND 5V b0 0 IN ? ? ? ? 8x ? ? ? b7 xxxxxxx0 waarde Als de waarde 01 is, moet de schakelaar wel in de bovenste stand staan. Is de waarde 00 dan weten we zeker dat de schakelaar in de onderste stand staat. b.v. poort 0379H 00000001 AND 00000000 waarde

  23. Resetten met AND 5V b0 0 IN ? ? ? ? 8x ? ? ? b7 xxxxxxx0 waarde We wilden graag realiseren: IF….(bitje0=1) …THEN…...Dit kunnen we nu programmeren als:waarde = (INPORT (&H379) AND &H01) IF waarde = 01 THEN……. b.v. poort 0379H 00000001 AND 00000000 waarde

  24. Resetten met AND b0 IN ? ? ? ? ? ? ? 0 b7 xxxxxxxx waarde Bedenk nu een programma dat iets doet als bit7 laag is b.v. poort 0379H ???????? AND waarde

  25. waarde = (INPORT (&H379) AND &H80) IF waarde = 0 THEN……. Resetten met AND b0 IN ? ? ? ? ? ? ? 0 b7 xxxxxxxx waarde Eerst resetten we alles behalve bit 7. Als de waarde daarna 0 is moet bit b7 wel nul zijn.Bekijk goed het programma.Je mag natuurlijk ook gebruiken AND 128. Dit is de decimale waarde van het bitpatroon 10000000B b.v. poort 0379H 10000000 AND x0000000 waarde

  26. A =1 F Inverteren met EXOR A B F B 0 0 0 0 1 1 1 0 1 1 1 0 Soms is het nodig bepaalde bits te inverteren. Hiervoor gebruiken we de EXOR bewerking.Kijk eerst goed naar de waarheidstabel.

  27. A =1 A Inverteren met EXOR A B F 0 0 0 0 A 0 1 1 =1 /A 1 1 0 1 1 1 0 Je kunt ook zeggenEXOR-en met een 1 inverteert de variabeleEXOR-en met een 0 verandert nietsOF A  1 = /A en A  0 = A

  28. A =1 A Inverteren met EXOR A B F 0 0 0 0 A 0 1 1 =1 /A 1 1 0 1 1 1 0 10011100 waarde In het voorbeeld worden de bits 0 t/m 3 niet geïnverteerd en de bits 4 t/m 7 wel.Deze functie kan je noemen: EXOR &HF0. 11110000 F0H EXOR 01101100 waarde

  29. A =1 A Inverteren met EXOR A B F 0 0 0 0 A 0 1 1 =1 /A 1 1 0 1 1 1 0 10001110 waarde Nog een voorbeeld.Wat is de uitkomst? 11000011 C3H EXOR waarde

  30. A =1 A Inverteren met EXOR A B F 0 0 0 0 A 0 1 1 =1 /A 1 1 0 1 1 1 0 10001110 waarde Controleer jouw uitkomst. De rode bits zijn geïnverteerd.De functie is EXOR &HC3Maar EXOR 195 doet hetzelfde! 11000011 C3H EXOR 01001101 waarde

  31. A 1 F Setten met OR A B F B 0 0 0 0 1 1 1 0 1 1 1 1 Soms is het nodig bepaalde bits te setten. Hiervoor gebruiken we de OR bewerking.Kijk eerst goed naar de waarheidstabel.

  32. A 1 A Setten met OR A B F 0 0 0 0 A 0 1 1 1 1 1 1 0 1 1 1 1 Je kunt ook zeggenOR-en met een 1 set de variabeleOR-en met een 0 verandert nietsOF A + 1 = 1 en A + 0 = A

  33. 1 A Setten met OR A B F 0 0 0 0 A 0 1 1 1 1 1 1 0 1 1 1 1 10011100 waarde In het voorbeeld worden de bits 4 t/m 7 geset. De bits 1 t/m 3 veranderen niet. Deze functie kan je noemen: OR &HF0. 11110000 F0H OR 11111100 waarde

  34. A 1 A Setten met OR A B F 0 0 0 0 A 0 1 1 1 1 1 1 0 1 1 1 1 10001110 waarde Nog een voorbeeld.Wat is de uitkomst? 11000011 C3H OR waarde

  35. 1 A Setten met OR A B F 0 0 0 0 A 0 1 1 1 1 1 1 0 1 1 1 1 10001110 waarde Controleer jouw uitkomst. De rode bits zijn geset.De functie is OR &HC3Maar OR 195 doet hetzelfde! 11000011 C3H OR 11001111 waarde

  36. Setten met OR Dit is het laatst scherm STOPPEN

More Related