Add #$28,R4,R3
$
在此表达式中的含义是什么? R4值是1224,最终结果应该是1264,但是这是如何工作的我不知道。
答案 0 :(得分:7)
在汇编程序中,符号$通常表示两种不同的东西:
例如:
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)
如果您编写或读取为CP / M或MS DOS编写的程序,您可能还会在字符串常量的末尾看到$,作为字符串终止符。两个操作系统都使用了这种约定,因此系统调用将字符串打印到控制台需要以美元结尾的字符串。 Gary Kildall的创建者CP/M从未透露过为什么他选择了特定的符号来标记字符串的结尾。
;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,'$'
答案 1 :(得分:5)
在某些汇编程序中,'$'表示您使用的是十六进制值。在x86架构上通常用'h'来写数字,或者如果第一个字符不是数字,那么你必须在前面28h
或0afh
使用零。
在C中你会写0x28
。
例如,在6510(Commodore 64)或M68000(即Amiga)上,'$'字符用于此'$ 28'。我确信还有其他装配工使用这种表示法。