自己写出来的汇编实验10 可以自由改变行列颜色
assume cs:code,ds:data,ss:stackdata segment
db 'Welcome To Masm!'
dw 0,0
data ends
stack segment
db 16 dup(0)
stack ends
code segment
start:mov ax,data ;这一大段都是初始化
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,16
mov ax,0b800h
mov es,ax
mov si,0
mov di,0
mov dh,15;行所在位置可以改变
mov dl,20;列所在位置可以改变
mov bl,2;颜色控制字
mov ds:,dh
mov cx,ds: ;通过内存把DH赋给CX用于控制循环
mov ax,0
call hang ;计算行
mov ds:,dl; push ip
mov cx,ds:;通过内存把DH赋给CX用于控制循
mov ax,0
call lie ;计算列
;push mov cx,16的ip值
mov cx,16 ;用于控制16个字符循环否则在最后只显示!
call show_str
mov ax,4c00h ;push ip
int 21h
show_str: push cx ;push cx
mov al,
mov es:,al
mov es:,bl
inc si
add di,2 ;这个指令非常重要
pop cx ;出栈执行(cx)=(cx)-1
loopshow_str
ret ;pop ip
hang: add ax,0a0h;用加法表示乘法
loop hang
mov bp,ax
ret;pop ip
lie: add ax,2 ;用加法表示乘法
loop lie
mov di,ax;mov si,ax
ret ;pop ip
code ends
end start
assume cs:code,ds:data,ss:stack
data segment
db 'Welcome To Masm!'
dw 0,0
data ends
stack segment
db 16 dup(0)
stack ends
code segment
start:mov ax,data ;这一大段都是初始化
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,16
mov ax,0b800h
mov es,ax
mov si,0
mov di,0
mov dh,10;行所在位置可以改变
mov dl,2;列所在位置可以改变
mov bl,9;颜色控制字
mov ds:,dh
mov cx,ds: ;通过内存把DH赋给CX用于控制循环
mov ax,0
call hang;计算行
mov ds:,dl; push ip
mov cx,ds:;通过内存把DH赋给CX用于控制循
mov ax,0
call lie;计算列
;push mov cx,16的ip值
mov cx,16 ;用于控制16个字符循环否则在最后只显示!
call show_str
mov ax,4c00h ;push ip
int 21h
show_str:push cx ;push cx
mov al,
mov es:,al
mov es:,bl
inc si
add di,2 ;这个指令非常重要
pop cx ;出栈执行(cx)=(cx)-1
loopshow_str
ret ;pop ip
hang: add ax,0a0h;用加法表示乘法
loop hang
mov bp,ax
ret;pop ip
lie: add ax,2;用加法表示乘法
loop lie
sub ax,2
mov di,ax
ret ;pop ip
code ends
end start
页:
[1]