assume cs:code
data segment
db 'welcome to masm!'
db 02h, 24h, 71h
data ends
stack segment
db 10h dup (0) ;定义栈空间,用来储存和恢复外层循环次数
stack ends
code segment
start:
mov ax, data
mov ds, ax
mov ax, stack
mov ss, ax
mov sp, 10h
mov ax, 0b86eh
mov es, ax ;(es) = 显示第一行字符串的段地址
mov bp, 0
mov si, 0
mov cx, 3 ;初始化相关寄存器
s:
push cx ;保存外层循环的次数!
mov bx, 0
mov di, 0
mov cx, 10h
s0:
mov al, [bx]
mov ah, ds:10h[si]
mov es:40h[bp][di], ax
inc bx
add di, 2
loop s0 ;在内层循环中,完成行的输出显示!
add bp, 0a0h
inc si
pop cx ;恢复外层循环的次数!
loop s
mov ax, 4c00h
int 21h ;程序返回
code ends
end start
有不足的地方请大家指出来,谢谢了! |