实验九
只用到了loop,感觉这一章学的转移指令没有用到?之前的知识就能够做出来assume cs: codesg, ds: datasg, ss: stacksg
datasg segment
db 'welcome to masm!'
db 02H, 24H, 71H
datasg ends
stacksg segment
dw 8 dup(0)
codesg segment
start: mov ax, datasg
mov ds, ax
mov bx, 0 ;定位行
mov ax, stacksg
mov ss, ax
mov sp, 16
mov ax, 0b872H ;12行中间
mov es, ax
mov bp, 0 ;属性
mov cx, 3 ;最外层循环,3行
s: push cx
mov si, 0;datasg中待复制字母的偏移地址
mov di, 0;显存中操作的偏移地址
mov cx, 16
s0: mov al, ds:
mov es:, al;ASCII码
inc di;下一个字节存放属性
mov al, ds:10H
mov es:, al;属性
inc di;准备存放下一个字母
inc si;指向下一个字母
loop s0
add bx, 160;指向下一行
inc bp ;下一行用下一个属性
pop cx
loop s
mov ax, 4c00H
int 21H
codesg ends
end start
页:
[1]