assume cs:code
code segment
start: mov ax,cs
mov ds,ax
mov si,offset capital ;设置ds:si指向源地址
mov ax,0
mov es,ax
mov di,200h ;设置es:di指向目标地址
mov cx,offset capitalend-offset capital ;设置cx为传输长度
cld ;设置传输方向为正
rep movsb
mov ax,0
mov es,ax
mov word ptr es:[7ch*4],200h
mov word ptr es:[7ch*4+2],0 ;设置中断向量表
mov ax,4c00h
int 21h
capital: push ax
push es
push di
push si
mov al,0ah
mul dh
add ax,0b800h
mov es,ax ;设置显示段地址(行)
mov al,dl
add al,dl
mov ah,0
mov di,ax
sub di,2 ;设置显示偏移地址(列)
change1: cmp byte ptr [si],0
je change2 ;如果是0,跳出循环
mov al,[si]
mov es:[di],al
mov es:[di+1],cl
inc si
add di,2 ;字符串送入显示地址空间
jmp short change1
change2: pop si
pop di
pop es
pop ax
iret
capitalend: nop
code ends
end start