From fffa7454d6fbc90de033a1a0c15794c440536426 Mon Sep 17 00:00:00 2001 From: Eli Bendersky Date: Mon, 28 Jun 2021 11:31:47 -0700 Subject: [PATCH] Fix sta decoding issue --- package.json | 2 +- src/assembler.js | 2 +- test/test.js | 19 +++++++++++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 0ccd88b..e155ffd 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,6 @@ }, "homepage": "https://github.com/eliben/js-8080-sim#readme", "devDependencies": { - "mocha": "^8.0.1" + "mocha": "^8.4.0" } } diff --git a/src/assembler.js b/src/assembler.js index d905c96..afaa2f7 100644 --- a/src/assembler.js +++ b/src/assembler.js @@ -386,7 +386,7 @@ class Assembler { } case 'sta': { this._expectArgsCount(sl, 1); - let num = this._argImmOrLabel(sl, sl.args[1], curAddr); + let num = this._argImmOrLabel(sl, sl.args[0], curAddr); // 16-bit immediates encoded litte-endian. return [0b00110010, num & 0xff, (num >> 8) & 0xff]; } diff --git a/test/test.js b/test/test.js index 2e995e7..3e24aee 100644 --- a/test/test.js +++ b/test/test.js @@ -283,6 +283,25 @@ describe('sim', () => { assert.equal(state.a, 33); }); + it('lda-sta', () => { + let [state, mem] = runProg(` + lda myArray + mov c, a + mvi a, 99 + sta myArray + + mvi a, 0 + lda myArray + hlt + myArray: + db 33 + `); + + assert.ok(state.halted); + assert.equal(state.c, 33); + assert.equal(state.a, 99); + }); + it('array-dw', () => { let [state, mem, labelToAddr] = runProg(` hlt