J'ai donc ce code pour mon émulateur qui convertit l'octet HexPourquoi mon opération bit à bit renvoie 0 dans mon émulateur?
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;
}
Et j'ai ce code qui fait un op bitwise pour obtenir un opcode convertit ensuite pour une utilisation.
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)...
C'est la sortie de la console
Array [ 240, 144, 144, 144, 240, 32, 96, 32, 32, 112, 70 more… ]
before conversion 0
0x0000
Cela signifie que je reçois le opcode mal mais je ne sais pas comment le résoudre. Pour une meilleure perspective sur le projet: Github
Votre code fonctionne ... quand je l'exécute sur stackoverflow. Ça ne marche pas pour moi ... – Blaze349
Super, c'est un bon premier pas. Maintenant, il semble que vous deviez étendre "ne fonctionne pas pour moi" en quelque chose d'utile et capable d'être adressée. Quelles erreurs obtenez-vous dans la console, qu'attendez-vous en conséquence, qu'obtenez-vous en conséquence? – enhzflep
Merci d'avoir répondu. Mon opcode est mis à 0 avant d'être changé au résultat bitwise chaque cycle. C'est presque comme si la fonction ne donnait aucune valeur à l'opcode. Il n'y a pas d'erreurs js cependant. Je reçois toujours 0 et 0x0000 à la suite. – Blaze349