assume cs:code,ds:data,ss:stack
data segment
db 'welcome to masm!'
data ends
stack segment
db ' '
stack ends
code segment
start:
mov ax,data
mov ds,ax
;第一次写入段地址
mov ax,0b800h
mov es,ax
;计算第一次写入偏移地址
mov ax,0040h
mov cx,0010h
a:
add ax,00a0h
loop a
;地址存入bx
mov bx,ax
push bx
mov si,0000h
mov cx,000eh
s:
pop bx
;1
mov al,[si]
mov es:[bx],ax
;2
mov al,[si]
mov es:00a0h[bx],ax
;3
mov al,[si]
mov es:0140h[bx],ax
;附加段自加2
add bx,0002h
push bx
;数据段自加1
inc si
loop s
mov ax,4c00h
int 21h
code ends
end start |