Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | 4168 | Kartik K. Agaram | 2017-12-30 | 1 | -52/+52 |
| | |||||
* | 4162 | Kartik K. Agaram | 2017-12-22 | 1 | -25/+0 |
| | |||||
* | 4085 - done with first cut of the SubX VM | Kartik K. Agaram | 2017-10-18 | 2 | -3/+80 |
| | | | | subx: 'call' and 'return' instructions | ||||
* | 4084 | Kartik K. Agaram | 2017-10-18 | 2 | -25/+24 |
| | | | | | subx: extract helpers for 'push' and 'pop'. We will be using them in 'call' and 'ret' as well. | ||||
* | 4083 | Kartik K. Agaram | 2017-10-18 | 2 | -1/+60 |
| | | | | subx: 'pop' | ||||
* | 4082 | Kartik K. Agaram | 2017-10-18 | 2 | -5/+11 |
| | | | | | subx: correct a 'copy' ('mov') instruction as well to get its operand right from the opcode. | ||||
* | 4081 | Kartik K. Agaram | 2017-10-18 | 1 | -16/+12 |
| | |||||
* | 4080 | Kartik K. Agaram | 2017-10-18 | 1 | -4/+10 |
| | | | | | | | | subx: correct 'push' register. It gets its operand right from the opcode, not a new modrm byte. Have I misinterpreted any other instructions in this manner (`+rd` in the Intel manual)? | ||||
* | 4079 | Kartik K. Agaram | 2017-10-18 | 3 | -7/+82 |
| | | | | subx: 'pop' | ||||
* | 4078 | Kartik K. Agaram | 2017-10-17 | 1 | -1/+3 |
| | |||||
* | 4076 | Kartik K. Agaram | 2017-10-16 | 1 | -1/+1 |
| | |||||
* | 4075 | Kartik K. Agaram | 2017-10-16 | 1 | -3/+4 |
| | |||||
* | 4074 | Kartik K. Agaram | 2017-10-16 | 1 | -6/+10 |
| | |||||
* | 4073 | Kartik K. Agaram | 2017-10-16 | 1 | -4/+7 |
| | |||||
* | 4071 | Kartik K. Agaram | 2017-10-16 | 3 | -46/+510 |
| | | | | | | | | | subx: conditional jump instructions Lots of boilerplate here. This commit really strains my 'copyista' ethic. But I think it's still clearer to see each instruction implemented independently than to try to create a macro or something like that. | ||||
* | 4070 | Kartik K. Agaram | 2017-10-15 | 1 | -0/+11 |
| | |||||
* | 4069 | Kartik K. Agaram | 2017-10-15 | 3 | -0/+80 |
| | | | | subx: unconditional 'jump' | ||||
* | 4068 | Kartik K. Agaram | 2017-10-15 | 1 | -3/+3 |
| | |||||
* | 4067 | Kartik K. Agaram | 2017-10-15 | 3 | -3/+92 |
| | | | | subx: 'mov' | ||||
* | 4066 | Kartik K. Agaram | 2017-10-14 | 2 | -2/+2 |
| | | | | | | I spent a while spelunking into the code generated by C compilers before realizing that ignoring the order of arguments for 'cmp' instructions clarifies everything. | ||||
* | 4065 | Kartik K. Agaram | 2017-10-14 | 3 | -0/+228 |
| | | | | | | subx: 'compare' Hopefully I've implemented the 'sense' of comparisons right.. | ||||
* | 4064 | Kartik K. Agaram | 2017-10-14 | 3 | -41/+20 |
| | |||||
* | 4063 | Kartik K. Agaram | 2017-10-14 | 1 | -2/+2 |
| | |||||
* | 4062 | Kartik K. Agaram | 2017-10-13 | 1 | -0/+4 |
| | |||||
* | 4061 | Kartik K. Agaram | 2017-10-13 | 1 | -5/+5 |
| | |||||
* | 4060 - subx: correct stale Readme | Kartik K. Agaram | 2017-10-13 | 1 | -7/+1 |
| | |||||
* | 4058 | Kartik K. Agaram | 2017-10-13 | 2 | -0/+38 |
| | |||||
* | 4057 | Kartik K. Agaram | 2017-10-13 | 3 | -0/+111 |
| | |||||
* | 4056 | Kartik K. Agaram | 2017-10-13 | 3 | -0/+111 |
| | | | | subx: 'or' | ||||
* | 4055 | Kartik K. Agaram | 2017-10-13 | 3 | -0/+105 |
| | | | | subx: Implement 'and' for the addressing modes we've built so far. | ||||
* | 4053 | Kartik K. Agaram | 2017-10-12 | 2 | -5/+5 |
| | |||||
* | 4051 | Kartik K. Agaram | 2017-10-12 | 3 | -74/+74 |
| | | | | subx: Move register direct mode before indirect in the exposition. | ||||
* | 4050 | Kartik K. Agaram | 2017-10-12 | 1 | -0/+18 |
| | |||||
* | 4049 | Kartik K. Agaram | 2017-10-12 | 3 | -99/+101 |
| | | | | Instead of organizing layers by instruction, do so by addressing mode. | ||||
* | 4048 | Kartik K. Agaram | 2017-10-12 | 1 | -0/+22 |
| | |||||
* | 4047 | Kartik K. Agaram | 2017-10-12 | 1 | -0/+22 |
| | |||||
* | 4046 | Kartik K. Agaram | 2017-10-12 | 1 | -0/+12 |
| | |||||
* | 4045 | Kartik K. Agaram | 2017-10-12 | 1 | -3/+24 |
| | |||||
* | 4044 | Kartik K. Agaram | 2017-10-12 | 2 | -2/+18 |
| | | | | subx: now starting on subtraction instructions. | ||||
* | 4043 | Kartik K. Agaram | 2017-10-12 | 2 | -2/+25 |
| | |||||
* | 4042 | Kartik K. Agaram | 2017-10-12 | 1 | -4/+15 |
| | |||||
* | 4041 | Kartik K. Agaram | 2017-10-12 | 1 | -0/+4 |
| | |||||
* | 4040 | Kartik K. Agaram | 2017-10-12 | 2 | -3/+37 |
| | | | | | | | subx: add immediate First example of a more complex opcode that needs to do its own decoding to decide what instruction to run. | ||||
* | 4039 | Kartik K. Agaram | 2017-10-12 | 1 | -3/+3 |
| | |||||
* | 4038 | Kartik K. Agaram | 2017-10-12 | 2 | -8/+10 |
| | |||||
* | 4037 | Kartik K. Agaram | 2017-10-12 | 2 | -12/+15 |
| | | | | Fix non-standard switch statement. | ||||
* | 4036 | Kartik K. Agaram | 2017-10-12 | 1 | -6/+6 |
| | |||||
* | 4035 | Kartik K. Agaram | 2017-10-12 | 1 | -0/+3 |
| | |||||
* | 4034 | Kartik K. Agaram | 2017-10-12 | 3 | -0/+58 |
| | | | | Start implementing core x86 addressing mode decoding. | ||||
* | 4033 | Kartik K. Agaram | 2017-10-12 | 1 | -1/+0 |
| |