5.7 一段安全的空间
- 我们需要直接向一段内存中写入内容。
- 这段内存空间不应存放系统或其他程序的数据或代码,否则写入操作很可能引发错误。
- DOS方式下,一般情况,0:200~0:2ff(256字节)空间中没有系统或其他程序的数据或代码。
- 以后,我们需要直接向一段内存中写入内容时,就是用0:200~0:2ff这段空间。
5.8 段前缀的使用
我们可以利用段前缀来简化代码,如下面这个例子:
将内存ffff:0ffff:b单元中的数据复制到0:2000:20b单元中。
assume cs:code code segment mov bx, 0 mov cx, 12
s: mov ax, 0ffffh mov ds, ax mov dl, [bx]
mov ax, 0020h mov ds, ax mov [bx], dl
inc bx loop s
mov ax, 4c00h int 21h
code ends end
|
可以通过添加另外一个段寄存器es(附加段)来实现减少ds在循环中的设置次数:
assume cs:code code segment mov ax, 0ffffh mov ds, ax
mov ax, 0020h mov es, ax
mov bx, 0
mov cx, 12
s: mov dl, [bx] mov es:[bx], dl inc bx loop s
mov ax, 4c00h int 21h
code ends end
|