【发布时间】:2017-05-19 17:21:33
【问题描述】:
我在互联网上找到了这个字符串操作代码,用于反转字符串的内容。谁能解释一下字符串的长度是如何确定的,美元在任何类型的字符串程序中意味着什么?
model small
.stack 100h
.data
String1 db 'assembly language program', $
Length dw $-String1-1
.code
Main proc
MOV AX, @data
MOV DS, AX
MOV SI, offset String1
MOV CX, Length
ADD SI, CX
Back: MOV DL, [SI]
MOV AH, 02H
INT 21H
DEC SI
LOOP Back
MOV AH, 4CH
INT 21H
End
【问题讨论】:
-
更好的问题是“
$在db 'assembly language program', $中的用途是什么?”那让我感到困惑...... C sriings 是空终止的,Pascal 保持开始时的长度。谁在末尾添加带有长度(?)的字节? -
汇编语言语法是由汇编器(不是目标)定义的,所以这不是一个 8086 问题,而是我有一些汇编器(一个像 masm、nasm、gas 这样的程序),这是什么语法意思。你用的是什么软件?
-
@Arkadiy 看看stanislavs.org/helppc/int_21-9.html 看起来有人混合了
$符号的不同用法 -
@Lashane,抱歉,没有看到答案...
$似乎是一个字面美元符号。