Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- extern int assembleraddsub(int,int,int,int*);
- unsigned short addsub(int op1, int op2, int what, int *result);
- int main(int argc, char** argv)
- {
- if(argc != 4)
- {
- printf("\n Usage: ./a5 OP1 WHAT OP2\n");
- exit(1);
- }
- int op1 = atoi(argv[1]);
- int op2 = atoi(argv[3]);
- int what= 0;
- int result;
- unsigned short flags;
- if(strcmp(argv[2],"+")==0)
- {
- what = 1;
- } else if(strcmp(argv[2],"-")==0)
- {
- what = 0;
- } else
- {
- printf("\n Falsche Operation! (Nur + oder -)\n");
- }
- flags = addsub(op1,op2,what,&result);
- printf("\nO D I T S Z A P C\n");
- int i = 11;
- int stelle;
- for(; i>=0; i--)
- {
- stelle = flags >> i;
- if(stelle & 1)
- {
- printf("1 ");
- } else
- {
- printf("0 ");
- }
- }
- printf("\n\nErgebnis und Operanden Signed:\n");
- printf("%d %s %d = %d " ,(signed short)op1
- ,argv[2]
- ,(signed short)op2
- ,(signed short)result);
- if(flags >> 11 == 1)
- {
- printf("(Ergebnis ist falsch!)\n");
- } else
- {
- printf("(Ergebnis ist richtig!)\n");
- }
- printf("\n\nErgebnis und Operanden Unsigned:\n");
- printf("%d %s %d = %d " ,(unsigned short)op1
- ,argv[2]
- ,(unsigned short)op2
- ,(unsigned short)result);
- if(flags & 0x01)
- {
- printf("(Ergebnis ist falsch!)\n");
- } else
- {
- printf("(Ergebnis ist richtig!)\n");
- }
- return 0;
- }
- unsigned short addsub(int op1, int op2, int what, int *result)
- {
- return assembleraddsub(op1,op2,what,result);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement