002
15.11.2015, 21:20 Uhr
Olli
|
Mh? schnall ich nicht? warum wird daraus 1111 1111 1111 1111? Wird der linke Teil mit 1en anstatt 0en aufgefüllt? Ist es denn "in Summe" nicht aber trozdem das gleiche?
Weil, dann würde sich ja folgendes bei beiden Codes ergeben:
Quellcode: | sra r6,#12 andb rl6,#15 subb rh6,rh6
|
- Annahme, in r6 steht 1101 0000 0000 0000 - sra r6,#12 (alles 12 bits nach rechts verschieben) - in r6 steht nun 1111 1111 1111 1101 - andb rl6,#15 (niederen 8 bits mit 15 und-verknüpfen) - in r6 steht nun 1111 1111 0000 1101 - subb rh6,rh6 (oberen 8 bits leeren durch substraktion mit sich selber) - in r6 steht nun 0000 0000 0000 1101
Quellcode: | sra r6,#12 and r6,#15 subb rh6,rh6
|
- Annahme, in r6 steht 1101 0000 0000 0000 - sra r6,#12 (alles 12 bits nach rechts verschieben) - in r6 steht nun 1111 1111 1111 1101 - and r6,#15 (die 16 bits mit 15 und-verknüpfen) - in r6 steht nun 0000 0000 0000 1101 - subb rh6,rh6 (oberen 8 bits leeren durch substraktion mit sich selber) - in r6 steht nun 0000 0000 0000 1101
Der letzte Call ist also eigentlich nutzlos?! -- P8000 adventures: http://pofo.de/blog/?/categories/1-P8000 |