26-09-2012, 11:48 AM
(Seda postitust muudeti viimati: 26-09-2012, 10:30 PM ja muutjaks oli A.R..)
Proovisin leida baidi paarsust C keeles. (Puht laiskusest.)
Aga katsuge sama teha ASMis.
Seal peaks kuluma 7 käsku?
Muuses, seda C-d võib transleerida ka PICi jaoks.
_________________________________
Õhtu on vist ikka hommikust targem.
Kui nihutada vasakule, siis saab suunata baidi märgi järgi.
Jälle üks käsk vähem.
Aga katsuge sama teha ASMis.
Seal peaks kuluma 7 käsku?
Muuses, seda C-d võib transleerida ka PICi jaoks.
Kood:
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char *argv[]){
int a =0x93,b,i;
fprintf(stdout,"Arv (detsi hex bin)-vahekujud (hex bin)-paarsus\n");
for(i=0;i<=255;i++){
// Katsetame leida arvude 0 kuni 255 paarsust
b=i;
// nihutame baiti 4 bitti paremale ja kasutame XOR käsku
b=b^(b>>4);
// nihutame baiti 2 bitti paremale ja kasutame XOR käsku
b=b^(b>>2);
// nihutame baiti 1 bitti paremale ja kasutame XOR käsku
b=b^(b>>1);
fprintf(stdout,"%3d %2X %8b - %2X %8b - %d\n",i,i,i,b,b,b&1);
}
fprintf(stdout,"Käsud nihutada ja XOR on olemas ka ASMis\n");
return 0;
}
Õhtu on vist ikka hommikust targem.
Kui nihutada vasakule, siis saab suunata baidi märgi järgi.
Jälle üks käsk vähem.