8086 Modul de adresare ADD pentru asamblare

Bună ziua, scriu codul de asamblare pentru 8086, dar mă întreb cum diferă CPU, de exemplu

ȘI AX, [memoryaddress] și ȘI AX, memorie

punem [] în jurul acestuia pentru a indica faptul că ar trebui înlocuită cu cea care se adresează conținutului, dar CPU vede o astfel de instrucțiune

00 01 1101001

Cum se știe dacă ar trebui să adauge valoarea 1101001 sau conținutul adresei 1101001.

Mă gândesc că există mai mult de o comandă ADD și că opcodele lor sunt diferite (ADDTHECONTENTS și ADDTHEVALUE), dar a86 ne permite să spunem doar ADD, deoarece putem diferenția cu ușurință semantica de sintaxa []. Acest lucru pare logic, dar nu sunt sigur despre asta, așa că am vrut să întreb dacă există numeroase opcode pentru instrucțiuni care corespund diferitelor moduri de adresare.

0
Biții celor două instrucțiuni de adăugare sunt diferiți; utilizați un editor hex pentru asta. este doar făcut omenească ușor de citit.
adăugat autor Joop Eggen, sursa
Este exact așa cum credeți. Consultați, de exemplu, aici: ref.x86asm.net/coder.html - sau obțineți o referință de arhitectură.
adăugat autor moonshadow, sursa
Care este modul de adresare?
adăugat autor Vaido, sursa

1 răspunsuri

Diferența este în opcode . Există mai multe opcode ADD (cu valori numerice 0, 1, 2, 3, 4, 5) și diferă exact între argumentele pe care le așteaptă și ce fac cu argumentele.

0
adăugat