about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* 4080Kartik K. Agaram2017-10-182-17/+29
| | | | | | | | 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)?
* 4079Kartik K. Agaram2017-10-186-33/+183
| | | | subx: 'pop'
* 4078Kartik K. Agaram2017-10-177-450/+454
|
* 4077Kartik K. Agaram2017-10-176-33/+33
| | | | | Stop hyperlinking every `i` in subx html files to the integer register union.
* 4076Kartik K. Agaram2017-10-161-1/+1
|
* 4075Kartik K. Agaram2017-10-161-3/+4
|
* 4074Kartik K. Agaram2017-10-161-6/+10
|
* 4073Kartik K. Agaram2017-10-161-4/+7
|
* 4072Kartik K. Agaram2017-10-166-68/+667
|
* 4071Kartik K. Agaram2017-10-163-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.
* 4070Kartik K. Agaram2017-10-151-0/+11
|
* 4069Kartik K. Agaram2017-10-157-221/+383
| | | | subx: unconditional 'jump'
* 4068Kartik K. Agaram2017-10-152-6/+6
|
* 4067Kartik K. Agaram2017-10-156-6/+184
| | | | subx: 'mov'
* 4066Kartik K. Agaram2017-10-144-4/+4
| | | | | | 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.
* 4065Kartik K. Agaram2017-10-146-0/+456
| | | | | | subx: 'compare' Hopefully I've implemented the 'sense' of comparisons right..
* 4064Kartik K. Agaram2017-10-149-519/+477
|
* 4063Kartik K. Agaram2017-10-144-8/+8
|
* 4062Kartik K. Agaram2017-10-135-252/+260
|
* 4061Kartik K. Agaram2017-10-134-18/+18
|
* 4060 - subx: correct stale ReadmeKartik K. Agaram2017-10-131-7/+1
|
* 4059Kartik K. Agaram2017-10-133-242/+609
|
* 4058Kartik K. Agaram2017-10-132-0/+38
|
* 4057Kartik K. Agaram2017-10-133-0/+111
|
* 4056Kartik K. Agaram2017-10-133-0/+111
| | | | subx: 'or'
* 4055Kartik K. Agaram2017-10-133-0/+105
| | | | subx: Implement 'and' for the addressing modes we've built so far.
* 4054Kartik K. Agaram2017-10-1210-371/+375
|
* 4053Kartik K. Agaram2017-10-124-10/+10
|
* 4052Kartik K. Agaram2017-10-1210-140/+1949
|
* 4051Kartik K. Agaram2017-10-123-74/+74
| | | | subx: Move register direct mode before indirect in the exposition.
* 4050Kartik K. Agaram2017-10-121-0/+18
|
* 4049Kartik K. Agaram2017-10-123-99/+101
| | | | Instead of organizing layers by instruction, do so by addressing mode.
* 4048Kartik K. Agaram2017-10-121-0/+22
|
* 4047Kartik K. Agaram2017-10-121-0/+22
|
* 4046Kartik K. Agaram2017-10-121-0/+12
|
* 4045Kartik K. Agaram2017-10-121-3/+24
|
* 4044Kartik K. Agaram2017-10-122-2/+18
| | | | subx: now starting on subtraction instructions.
* 4043Kartik K. Agaram2017-10-122-2/+25
|
* 4042Kartik K. Agaram2017-10-121-4/+15
|
* 4041Kartik K. Agaram2017-10-121-0/+4
|
* 4040Kartik K. Agaram2017-10-122-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.
* 4039Kartik K. Agaram2017-10-121-3/+3
|
* 4038Kartik K. Agaram2017-10-122-8/+10
|
* 4037Kartik K. Agaram2017-10-122-12/+15
| | | | Fix non-standard switch statement.
* 4036Kartik K. Agaram2017-10-121-6/+6
|
* 4035Kartik K. Agaram2017-10-121-0/+3
|
* 4034Kartik K. Agaram2017-10-123-0/+58
| | | | Start implementing core x86 addressing mode decoding.
* 4033Kartik K. Agaram2017-10-121-1/+0
|
* 4032Kartik K. Agaram2017-10-121-13/+13
| | | | Consistent naming for the common terms 'register' and 'memory'.
* 4031Kartik K. Agaram2017-10-121-7/+7
| | | | | | No, go back to a vector for `Memory`. We need it to be contiguously laid out in memory so that we can write words all at once rather than a byte at a time.