发新话题
打印

请教6502汇编

请教6502汇编

请问老师6502汇编中 ! c6 e: i  g* }1 j; Z9 f( E& Q
*= $600  z0 t7 B$ T( h* i+ w7 ~' x6 N/ ~
这句起什么作用?

TOP

见识浅薄了,一般指令都是$或者#$后面直接写地址或代码,*= $600理解不了

TOP

这个 = 很诡异啊...

TOP

; Wait for input test
! J. X, `+ D# X: [6 `8 T$ ]) Q& K  n& ^- z/ Q9 P( O  m  e
; IO area of the simulator has to be set at the address $e000
) s# y' ?; p1 V% U; (Option/Simulator/InOut memory area)
1 u8 w7 r7 z0 B! r, V3 B; In/Out Window will only accept input when it has focus (is active)
: i" Q/ m: f) {/ q0 V( d; K2 L/ _( p( f' A  N# u0 e
        *= $0600  ;不太懂
/ K# v3 O: d; r5 F. @( x. `- H+ t
8 J2 }. s2 ^5 q3 J3 M2 ~3 Gio_area        = $e0007 P* D$ P. g+ R: a$ F
io_cls        = io_area + 0        ; clear terminal window; h0 O6 n$ K# q9 `' [9 {" ]
io_putc        = io_area + 1        ; put char
$ G6 Q/ Y! e) n1 iio_putr        = io_area + 2        ; put raw char (doesn't interpret CR/LF)
! {% C4 x( k- [) N- h7 t) uio_puth        = io_area + 3        ; put as hex number* ?( ^( |" i+ `
io_getc        = io_area + 4        ; get char
; g0 f% U* i) p" B  \; u) F+ i5 C/ |; z9 v* z
        LDA #$a4 x6 G- l0 ^  H) M# ^' W2 g2 D5 L
        STA io_putc        ; this will move cursor to the next line; H! K( [: \- |" H4 k# ]7 C
        STA io_putr        ; this will print character" I% l* V$ C$ t3 B

9 A5 f5 i* b& v7 @. _1 u        LDA #'>'7 B+ u  x0 V4 U7 I7 _
        STA io_putc      ;后面的输入过程也不太懂
) ^6 q* H) u+ s" A" z! a- k        & m  R5 p7 {' f" M3 |' V
.wait
9 X; c' U2 x2 n        LDA io_getc
4 h1 P) K( K* g( G        BEQ .wait
2 n6 J6 t- g) v- q6 _        STA io_puth
/ K3 c/ j4 C- f5 X' e* h        JMP .wait
& L+ q6 C/ E- g- d( q- K2 d2 j& f9 l. b0 l
        BRK

TOP

我来回答你 吧,*=$0600指的是编译时候的程序计数器的设置指令/ H! s, Q8 d+ n/ O
*=$0600表示从现在开始,程序计数器的值为$0600,那么接下来 指令“LDA #$a”所在的地址就是$0600,指令“STA io_putc”的地址就是$0602,以此类推。。- p* t/ d+ \: M& J. ^
就这个程序而言,用了 *=$0600 的后果是$0000-$0600的地址空间就不放代码了。 估计是预留给内存用的
Yesterday is history.
Tomorrow is a mystery.
But today is a gift.
That is why it’s called the present.

TOP

初始地址不是应该写成 ORG $0600 吗?& l- U: L2 p/ H, s1 e
*= 又是啥指令?

TOP

这两个等效~  当然,换个编译器可能就不一样了。  纯粹是编译器规定的,呵呵
Yesterday is history.
Tomorrow is a mystery.
But today is a gift.
That is why it’s called the present.

TOP

就是看编译器的约定,编译能通过就好了。一般编译器有说明书的,看了说明书就知道语句怎么写的。
性格决定命运,存在就是合理

TOP

发新话题