地址数组来显示内容应该怎么做?
data segment
new1 db 'newsa ',13,10, '$ '
new2 db 'newsb ',13,10, '$ '
new3 db 'newsc ',13,10, '$ '
news dw new1,new2,new3
data ends
code segment
main proc far
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov cx,3
;mov bx,news
;mov bx,ds
;movax,0
;mov bx,ax
display:
mov ah,9
lea dx,[bx]
int 21h
call SUB_DELAY
;mov ah,4ch
jmp judge
SUB_DELAY PROC NEAR
PUSHAX
PUSHBX
PUSHCX
PUSHDX
PUSHF
MOV AH, 2CH
INT 21H
INC DH ;系统秒数个数加1
MOV BL, DH
CMP BL, 3CH ;如果是60
JNE SUB_TIMER
XOR BL, BL ;BL置0
SUB_TIMER:
MOVAH, 2CH
INT21H;获取系统时间
CMPBL, DH;秒数十位置0,只比较个数
JESUB_RET;如果到了下一秒,则返回
JMPSUB_TIMER
SUB_RET:POPF
POPDX
POPCX
POPBX
POPAX
RET
SUB_DELAYENDP
judge:
add bx,8
dec cx
cmp cx,0
jnz display
jz exit
exit:
mov ah,4ch
int 21h
main endp
code ends
end start
我想用 news 地址数组来显示new1,new2,new3内容应该怎么做啊
这样是可以把new1 db 'newsa ',13,10, '$ '
new2 db 'newsb ',13,10, '$ '
new3 db 'newsc ',13,10, '$ '输出但是若把new1~new3内容换成其他字符长度不同的字符串则不能正常输出
[解决办法]
....
mov bx, offset news
mov dx, bx[2] ; 0:new1 / 2:new2 / 4:new3
mov ah, 9
int 21h
...