微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 6502单片机编程--伪指令1

6502单片机编程--伪指令1

时间:11-24 来源:互联网 点击:
**字节定义伪指令.DB** 该伪指令可以定义数据,比如字节,也可以定义 字符串,汉字等
1. 定义字节
在字节前加 $, 代表是十六进制
在字节前加 @, 代表是二进制
在字节前什么都不加,代表是十进制
例如
.ORG $0000
.DB $30,$31,$32
我们编译一下,选择 查看-内存窗口,发现地址0000开始的内容是 30 31 32
例如
.ORG $0000
.DB @00110000,@00110001,@00110010
我们编译一下,选择 查看-内存窗口,发现地址0000开始的内容是 30 31 32
例如
.ORG $0000
.DB 48,49,50
我们编译一下,选择 查看-内存窗口,发现地址0000开始的内容是 30 31 32
2. 定义字符串或汉字
例如
.ORG $0000
.DB "HELLO WORLD"
.DB "你好啊"
一般我们都在.DB 前加一个标号,这样我们在程序中就可以用这些标号
例如,我们在屏幕上显示"HELLO WORLD"
.ORG $2000
LCD_BUFFER = $02C0
STR:.DB "HELLO WORLD",0
LDX #$0B
L1:LDA STR - 1, X
STA LCD_BUFFER - 1, X ;发送到屏幕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 伪指令该指令比较适合定义字符串或汉字
该指令会自动算出当前定义的字符串或汉字的长度,并且放在第1个字节
例如
.ORG $0000
.STR "HELLO"
我们编译一下,选择 查看-内存窗口,看到地址0000:05 48 45 4C 4C 4F
第一个字节是字符串的长度
我个人认为这很有用,比如我显示"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,这里我们不需要算了,因为字符串长度是第一个字节了是不是好多了.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top