鱼C论坛

 找回密码
 立即注册
查看: 2235|回复: 1

[技术交流] 自己写出来的汇编实验10 可以自由改变行列颜色

[复制链接]
发表于 2012-3-10 15:44:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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,15;行所在位置可以改变
                                mov dl,20;列所在位置可以改变
                                mov bl,2;颜色控制字
                               
                               
                                mov ds:[16],dh
                                mov cx,ds:[16]        ;通过内存把DH赋给CX用于控制循环
                                mov ax,0
                                call hang                ;计算行
                                mov ds:[17],dl; push ip
                                mov cx,ds:[17];通过内存把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,[si]
                                        mov        es:[bp+di],al
                                        mov es:[bp+di+1],bl
                                        inc si
                                        add di,2 ;这个指令非常重要
                                        pop cx ;出栈执行(cx)=(cx)-1
                       
                                        loop  show_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                               
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-3-10 17:36:34 | 显示全部楼层
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:[16],dh
    mov cx,ds:[16] ;通过内存把DH赋给CX用于控制循环
    mov ax,0
    call hang  ;计算行
    mov ds:[17],dl; push ip
    mov cx,ds:[17];通过内存把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,[si]
     mov es:[bp+di],al
     mov es:[bp+di+1],bl
     inc si
     add di,2 ;这个指令非常重要
     pop cx ;出栈执行(cx)=(cx)-1
   
     loop  show_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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-23 09:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表