assume cs:code
code segment
s1: db 'Good,better,best,','$'
s2: db 'Never let it rest,','$'
s3: db 'Till good is better,','$'
s4: db 'And better,best.','$'
s: dw offset s1,offset s2,offset s3,offset s4
row: db 2,4,6,8
start: mov ax,cs
mov ds,ax
mov bx,offset s
mov si,offset row
mov cx,4
ok: mov bh,0
mov dh,[si] ;[si]为所填内容
mov dl,0
mov ah,2
int 10h
mov dx,[bx] ;[bx]为所填内容
mov ah,9
int 21h
inc si
add bx,2 ;这两条指令为所填内容
loop ok
mov ax,4c00h
int 21h
code ends
end start
按题意上面所填的代码应不会错,可是书上面一开始bx中存标号S的偏移地址值,到ok中置光标的程序中又对bh赋值为0而没有保护之前bx中的值我觉得这样是错的,虽然这里程序不会错那也只是因为s的偏移地址的高八位本身为0即bh=0,这样子到底mov bh,0这条指令没有意义还是书本漏掉了保护bx的值呢~ 本人只是才学到13章感觉这里有点问题,也可能是我错了 希望大家别笑话啊~ |