新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 6502單片機編程--偽指令1

6502單片機編程--偽指令1

作者: 時間:2016-11-24 來源:網(wǎng)絡(luò) 收藏
**字節(jié)定義偽指令.DB** 該偽指令可以定義數(shù)據(jù),比如字節(jié),也可以定義 字符串,漢字等
1. 定義字節(jié)
在字節(jié)前加 $, 代表是十六進(jìn)制
在字節(jié)前加 @, 代表是二進(jìn)制
在字節(jié)前什么都不加,代表是十進(jìn)制
例如
.ORG $0000
.DB $30,$31,$32
我們編譯一下,選擇 查看-內(nèi)存窗口,發(fā)現(xiàn)地址0000開始的內(nèi)容是 30 31 32
例如
.ORG $0000
.DB @00110000,@00110001,@00110010
我們編譯一下,選擇 查看-內(nèi)存窗口,發(fā)現(xiàn)地址0000開始的內(nèi)容是 30 31 32
例如
.ORG $0000
.DB 48,49,50
我們編譯一下,選擇 查看-內(nèi)存窗口,發(fā)現(xiàn)地址0000開始的內(nèi)容是 30 31 32
2. 定義字符串或漢字
例如
.ORG $0000
.DB "HELLO WORLD"
.DB "你好啊"
一般我們都在.DB 前加一個標(biāo)號,這樣我們在程序中就可以用這些標(biāo)號
例如,我們在屏幕上顯示"HELLO WORLD"
.ORG $2000
LCD_BUFFER = $02C0
STR:.DB "HELLO WORLD",0
LDX #$0B
L1:LDA STR - 1, X
STA LCD_BUFFER - 1, X ;發(fā)送到屏幕RAM
DEX
BNE L1
LDA #$01
STA $0402
.DB $00,$15,$8A ;由于編譯器不支持INT 指令,所以這里直接定義INT $8A15機器碼
.DB $00,$08,$C0 ;由于編譯器不支持INT 指令,所以這里直接定義INT $C008機器碼
RTS
這個程序中,STR就是字符串的首地址



.STR 偽指令該指令比較適合定義字符串或漢字
該指令會自動算出當(dāng)前定義的字符串或漢字的長度,并且放在第1個字節(jié)
例如
.ORG $0000
.STR "HELLO"
我們編譯一下,選擇 查看-內(nèi)存窗口,看到地址0000:05 48 45 4C 4C 4F
第一個字節(jié)是字符串的長度
我個人認(rèn)為這很有用,比如我顯示"HELLO WORLD"到屏幕上
.ORG $0000
LCD_BUFFER = $02C0
STR:.STR "HELLO WORLD"
LDX STR
L1: LDA STR,X
STA LCD_BUFFER - 1,X
DEX
BNE L1
LDA #$01
STA $0402
.DB $00,$15,$8A
.DB $00,$08,$C0
RTS
以前我們還要算出字符串長度,然后送寄存器X,這里我們不需要算了,因為字符串長度是第一個字節(jié)了是不是好多了.


關(guān)鍵詞: 6502單片機編程偽指

評論


技術(shù)專區(qū)

關(guān)閉