我觉得你的问题在于 不会实践 “实践是真理的唯一标准”
以下是引用iamsky1981在2011-8-26 22:05:37的发言:
(16*(n/16+1))=16 搞不懂你这个16怎么算出来的
这里定义的a, b,c三个段每个段占16个字节,是因为段定义的默认定位类型是PARA,也就是说段起始位置位于可用的第一个节(每节为16个字节)
“在start:那里 mov ax,a 然后 mov ds,ax 那么他就定义在数据段 mov ss,ax 那么那个a就定义在栈段 是这样理解吗”
这个地方不是说定义在哪个段,a段已经定义好了, mov ds, ax只是把a的段地址赋给ds或者ss,让段寄存器指向a段
“从CS+3这里才是代码的真正开始” 此言差矣 CS才是代码的真正开始
总的来说,楼主的基础差那么一点点,建议楼主把基础再复习一下
(16*(n/16+1))=16 搞不懂你这个16怎么算出来的
这里定义的a, b,c三个段每个段占16个字节,是因为段定义的默认定位类型是PARA,也就是说段起始位置位于可用的第一个节(每节为16个字节)
“在start:那里 mov ax,a 然后 mov ds,ax 那么他就定义在数据段 mov ss,ax 那么那个a就定义在栈段 是这样理解吗”
这个地方不是说定义在哪个段,a段已经定义好了, mov ds, ax只是把a的段地址赋给ds或者ss,让段寄存器指向a段
“从CS+3这里才是代码的真正开始” 此言差矣 CS才是代码的真正开始
总的来说,楼主的基础差那么一点点,建议楼主把基础再复习一下
那个公式代n=0就是了 呵呵