Sida 1 av 1

invertera i assambler?

Postat: 1 mars 2004, 09:03:02
av Detraw
Japp som rubriken säger: finns det nån metod att invertera ett register i assambler, alltså så alla 1:or blir 0:or och tvårtom... har letat genom databladet för min AVR men hittar det inte där....

Postat: 1 mars 2004, 09:09:50
av gvs
fyll ett register med bara ettor sen xorar du det med de registret du vill invertera

Postat: 1 mars 2004, 09:11:50
av Detraw
smart... är lite ny på assambler som du kanske märkt :D

tackar

Postat: 1 mars 2004, 09:17:34
av marvin
precis, om du inte orkar ettställa ett register kan du alltid använda "COM" (ettkomplement)
Hoppas att du har atmels "instruction set summary"
http://www.atmel.com/dyn/resources/prod ... OC0856.PDF
Den är förklarande.[/url]

Postat: 1 mars 2004, 14:31:58
av Detraw
hmm nej den hade jag inte.. har bara suttit med den som fanns i databladet för avr:en... men denna verkar ju lite mer utförlig, tackar...

hittade föresten ett kommando sen som hette INV beskrivningen till den ser ut så här:

Kod: Markera allt

Rd <-- $00 - Rd
så jag antar att det gör samma sak, eller har jag fel?

Postat: 1 mars 2004, 15:36:36
av Melker
Vet ingen instruktion till AVR som heter "inv". Det man brukar använda för att invertera ett tal är första komplement(com), som marvin säger och den finns med i "instruction set summery" i databladet.

Postat: 1 mars 2004, 17:08:38
av Detraw
förlåt mig... NEG menar jag, hmm vet inte vart jag fick INV ifrån...

Postat: 1 mars 2004, 17:22:30
av erixon
NEG är för två compliment och ger fel om man ska invertera bitar, dock fungerar det bra för att invertera tal...
så ska man invertera bitar så fungerar COM utmärkt :)

Postat: 1 mars 2004, 17:54:00
av Detraw
hehe jo jag märkte att det blev fel med bitar, hehe

men nu med COM funkar allt, tackar