X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=2_isa%2Fmisc.ptex;h=c25791e7adfbaa048b32d4693408251b20561199;hb=0a3f69d53c4d12054c10001a4b97cdf302972c15;hp=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391;hpb=635b8f0e1908befd9e717384b81a2db533c9d8a4;p=calu.git diff --git a/2_isa/misc.ptex b/2_isa/misc.ptex index e69de29..c25791e 100644 --- a/2_isa/misc.ptex +++ b/2_isa/misc.ptex @@ -0,0 +1,28 @@ +ins ('32', 'jumpop', 'Branch/ret operation', '4 | 5 | 16 | 3 | 2 | 1 | 1', +'Conditions | OpCode (10110) | Immediate | - | Type | +/- | S', +'This instruction should be used with it\'s aliases br, call, ret and reti. No flags will be affected by this instructions.','','', +'br-Branch relative-4/00|call-Branch relative and save pc to stack-4/01|ret-Return to adress on stack-4/10|reti-Return from interrupt to adress on stack-4/11'); + +ins ('32', 'branchreg', 'Branch; jump to value of reg', '4 | 5 | 4 | 16 | 1 | 2 ', +'Conditions | OpCode (10111) | Register A | - | Type | -', +'This instruction should be used with its aliases \texttt{brr} and \texttt{callr}. No flags will be affected by this instructions. If Type is set to 1, the current value of the programcounter is pushed onto the stack.' +,'','', +'brr-Branch to value of reg-4/0|callr-Branch to value of reg and save PC to stack-4/1'); + +#ins ('32', 'call', 'Call; save pc+4 in stack, jump to pc+imm', '4 | 5 | 16 | 5 | 1 | 1', 'Conditions | OpCode | Immediate | - | +/- | S'); + +#ins ('32', 'ret(i)', 'return (from interrupt)', '4 | 5 | 1 | 22 ', 'Conditions | OpCode | I |-'); + +#ins ('32', 'ret', 'ret', '4 | 5 | 23 ', 'Conditions | OpCode | -'); + +#ins ('32', 'reti', 'reti', '4 | 5 | 23 ', 'Conditions | OpCode | -'); + +ins ('32', 'cmp', 'compare (rS1 - rS2)', '4 | 5 | 4 | 4 | 15', +'Conditions | OpCode (11000) | Register A (Source1) | Register B (Source2) | -', +'This instructions compares the two source registers by subtraction of register B from register A and setting the flags accordingly', +'is set to the MSB of the result|is set if the subtraction has a carry out|is set if an overflow occurred|is set if the result is zero'); + +ins ('32', 'cmpi', 'compare (rS1 - imm)', '4 | 5 | 4 | 16 | 3', +'Conditions | OpCode (11001) | Register A (Source1) | Immediate | -', +'This instructions compares the the source register with the immediate be subtracting the immediate from register A and setting the flags accordingly', +'is set to the MSB of the result|is set if the subtraction has a carry out|is set if an overflow occurred|is set if the result is zero');