Add #$28,R4,R3
What does $
mean in this expression? R4 value is 1224 and the end result should be 1264, but I have no idea how this works.
In assemblers, symbol $ usually means two different things:
For example:
mydata: db 0,1,2,3,4,5,6,7,8,9,$a,$b,$c,$d,$e,$f ;some decimal and
;hexadecimal numbers
datalenght equ $-mydata ;length of previous list.
jmp $ ;an infinite loop!! ($ evaluates as the current
; position just before the
; instruction is assembled,
; that is, the position where
; the JMP instruction begins)
You might also see $ at the end of string constants, as a string terminator character if you write or read programs written for CP/M or MS DOS. Both OS used this convention, so the system call to print a string to the console expects a dollar-terminated string. Gary Kildall, the creator of CP/M, never disclosed why he had chosen that particular symbol for marking the end of a string.
;A very simple MSDOS program to
;display "Hello world" to console.
org 100h
mov dx,offset Message
mov ah,9
int 21h
int 20h
Message: db "Hello, world!",13,10,'$'
;A very simple CP/M program to
;display "Hello world" to console.
org $100
mov de,Message
mov c,9
call 5 ;call bdos
rst 0
Message: db "Hello, world!",13,10,'$'
In some assemblers, the '$' means simply that you are using a hex value. on the x86 architecture it usual to write the number with 'h' or if the first character is not a digit, then you have to use a zero in front 28h
or 0afh
.
In C you would write 0x28
.
For example on the 6510 (Commodore 64) or M68000 (i.e. Amiga) the '$' character was used for this like '$28'. I'm sure there are other assemblers as well using this notation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With