So habe ich diesen Code für meinen Emulator, die ByteWarum gibt meine bitweise Operation 0 in meinem Emulator zurück?
byteToHex(opcode) {
var tempCode = (opcode).toString(16).toUpperCase()
var addln = 4 - tempCode.length
var pad =""
for(var i = 0; i< addln; i++) {
pad = pad + "0"
}
var newCode = "0x"+ pad + tempCode
return newCode;
}
verhexen wandelt, und ich habe diesen Code, der eine bitweise op tut einen Opcode wandelt sie dann für die Verwendung zu erhalten.
this.opcode = (this.memory[this.pc] << 8) | this.memory[this.pc + 1]
console.log(this.memory)
console.log("before conversion", this.opcode)
this.opcode = this.byteToHex(this.opcode)
console.log(this.opcode)
//this just returns the first 'letter' of the opcode
switch (this.opcode & 0xF000)...
Dies ist die Ausgabe der Konsole
Array [ 240, 144, 144, 144, 240, 32, 96, 32, 32, 112, 70 more… ]
before conversion 0
0x0000
Das bedeutet, ich bin den Opcode falsch bekommen, aber ich weiß nicht, wie es zu beheben. Für eine bessere Perspektive auf das Projekt: Github
Ihr Code funktioniert ... wenn ich ihn auf stackoverflow laufe. Es funktioniert aber nicht für mich ... – Blaze349
Großartig, das ist ein guter erster Schritt. Jetzt scheint es so zu sein, dass du "für mich nicht funktionstüchtig" in etwas Nützliches und Adressierbares erweitern musst. Welche Fehler bekommen Sie in der Konsole, was erwarten Sie als Ergebnis, was erhalten Sie eigentlich? – enhzflep
Vielen Dank für Ihre Antwort. Mein Opcode wird auf 0 gesetzt, bevor er in jedem Zyklus in das bitweise Ergebnis geändert wird. Es ist fast so, als würde die Funktion dem Opcode keinen Wert geben. Es gibt jedoch keine js Fehler. Ich bekomme immer noch 0 und 0x0000. – Blaze349