我正在重做,但我這次關閉。使用6502芯片。裝配打印緩衝區
我在寫一個程序集的打印緩衝區。
我遇到的一個問題是檢查字符串是否爲空。
這裏是我到目前爲止的代碼:(人類可讀)
buffer = $03ff
x = $01
[START]: $0500
LDX buffer // load buffer (at safe memory address $03ff)
LDY #$00 // loading the y register with 0 so that you can count up
// checking for a null string; if null, branch to the break instruction
LOOP: LDA buffer+1, y // get byte using the buffer
STA (x), y // store the value at the pointer
INY // increment y
DEX // decrement x (counting down with the x register)
BEQ $500? // if x is equal to 0, program is done
BNE LOOP: // if x is not equal to 0, keep going
BRK // if brk, it’s null
我怎麼會去檢查,如果該字符串爲空?
謝謝!
謝謝你試試這個!所以SUPER SUPER(確切的說是2天)組裝的新手問題......但我對BEQ的語法感到困惑。 – Surz
在彙編程序中,是否放置了BEQ ENDOFLOOP(我對什麼是內存地址感到困惑......是否只計算我將輸入多少行並放入內存地址? – Surz
如果您在編寫實際的機器代碼,跳轉會從計算機所在的位置開始計算字節數,當它決定它應該到達何處時,您不必擔心彙編程序的問題 - 確切的語法會有所不同,但通常像'LOOP:'會由彙編器作爲標籤,'BNE LOOP'將意味着'BNE'指向該標籤所在的位置;彙編器將計算正確的字節數並填寫。 – Tommy