1个回答
展开全部
汇编语言的老式写法,加载ds段的时候,是这么写法:
data segment
num db 10 dup(1)
data ends
cseg segment
assume ds:dseg, cs:cseg
start:
mov ax, dseg
mov ds, ax
…………
其他省略
新式写法,例如:
.model small
.data
source byte 10 dup( '0123456789' )
destin byte 100 dup( ? )
.code
.startup
mov ax, @data
mov ds, ax
mov es, ax
简单来说,也是用来加载数据段的。其实这种写法,会默认把.data加载到ds里去的。
不过有种内存模型叫large的,有个fardata段,比如:
.model large
.data
string1 byte 'The quick brown fox jumps over the laxy dog'
alle byte 'all equal!$'
.fardata
string2 byte 'The quick brown fox jumps over the laxy dog'
lstring EQU $ - string2
.code
.startup
mov ax, @data
mov ds, ax
mov ax, @fardata
mov es, ax
这种情况下,给ds、es加载不同的数据段,就很有用了。
data segment
num db 10 dup(1)
data ends
cseg segment
assume ds:dseg, cs:cseg
start:
mov ax, dseg
mov ds, ax
…………
其他省略
新式写法,例如:
.model small
.data
source byte 10 dup( '0123456789' )
destin byte 100 dup( ? )
.code
.startup
mov ax, @data
mov ds, ax
mov es, ax
简单来说,也是用来加载数据段的。其实这种写法,会默认把.data加载到ds里去的。
不过有种内存模型叫large的,有个fardata段,比如:
.model large
.data
string1 byte 'The quick brown fox jumps over the laxy dog'
alle byte 'all equal!$'
.fardata
string2 byte 'The quick brown fox jumps over the laxy dog'
lstring EQU $ - string2
.code
.startup
mov ax, @data
mov ds, ax
mov ax, @fardata
mov es, ax
这种情况下,给ds、es加载不同的数据段,就很有用了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询