初学者的两个问题,叩请赐教!!
贺照云 2003-10-15 11:31:34 我在自考,正学习经济科学出版社的<<汇编语言程序设计>>,这本指定的教材实在是不敢恭维,给我带来了很大的麻烦:
问题1:在代码里,经常用到段的装填如:
stack_seg segment
sbuf db 100 dup (0)
stack_seg ends
data_seg segment
val db 1, 2, 3, 4
data_seg ends
code_seg segment
assume cs:code_seg, ds:data_seg, ss:stack_seg
start:
mov ax, data_seg ;这里为什么不能直接用mov ds, data_seg
mov ds, ax
...
...
code_seg ends
end start
这里的数据段是否必须装填?代码段和堆栈段为什么不装填?
问题2:下边有两组寻址的例子?第一级是正确的,第二级是错误的?有什么标准判断?
第一组(正确的,书上这么说的,但没有原因):
mov ax, [bp]
mov ax, [bx + 7]
mov ax, [7 + bp]
mov ax, [si - 100h]
mov ax, [di + bp]
mov ax, [bx + si]
mov ax, [si + offset val]
第二组(错误的,书上这么说的,但没有原因):
mov ax, [bx * 7]
mov ax, [bx + bp]
mov ax, [bp - si]
mov ax, [3 - bx]