這段代碼是什么意思?
有我的評論。我可能錯了。但我認為是的。
PUSH H ;There we push data from H-register to the stack.
LXI H, OFFF ;I can't understand... Why OFFF, not 0xFFF?
REP: DCX ;It decrements passed register. But there's nothing to decrement. Is it correct?
MVI A, OO ;Again... What do two O mean?
CMP H ;CMP takes two arguments. Why does it take one there?
JMP REP ;It's a kind of loop. Jumping to the REP label.
POP H ;This instruction pops data from the stack to the H register.
RET ;Return to the caller.
我從來沒有遇到過像OFFF、OO這樣的結構。這是什么意思?
這段代碼有什么作用?主要目的可能是什么?
它可能是哪種型號的處理器?你怎么想?
uj5u.com熱心網友回復:
你從哪里得到這個代碼?這通常是它用于什么架構的一個重要提示。我想可能是 8080;它有 A 和 H 暫存器(https://en.wikipedia.org/wiki/Intel_8080),以及許多類似于其后代 8086 的指令助記符。
回復:十六進制常量,大概這個匯編程式默認為數字文字的十六進制,并且加載立即到擴展暫存器對(lxi)需要一個 16 位立即數,所以他們用 4 個十六進制數字寫入它。 (那是一個0,不是一個O)。
同樣mvi, mov-immediate 到 8 位暫存器采用 8 位立即數,并且他們選擇為兩半寫入顯式零。00FFF 上的前導也是消除符號名稱歧義的必要條件。
回復:其他謎團,查看 8080 的指令集參考,了解 DCX 的作用。(劇透:我檢查,dcx確實需要一個運算元,除非某些裝配有一個默認的16位暫存器對遞減想必?HL又名H,回圈計數器?)
但是cmp將顯式運算元與累加器 ( A)進行比較;隱式運算元是多少條指令可能只有 1 個位元組:https : //pastraiser.com/cpu/i8080/i8080_opcodes.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/408730.html
標籤:
上一篇:從gcc編譯的匯編代碼未運行
下一篇:在64位masm中列印hello
