在屏幕中间显示多行指定颜色文字的8086汇编代码


assume cs: codes, es: extdatas, ss: stacks

extdatas segment
    db "welcom to masm !"   ; 16 chars
    db 42H,71H,71H,71H, 71H,71H,71H,71H, 71H,71H,71H,62H, 62H,71H,71H,71H; 16 colors
extdatas ends

stacks segment
    dw 0H, 0H
stacks ends

codes segment
    mainproc:   mov ax, extdatas
                mov es, ax
                mov ax, 0B800H
                mov ds, ax
                mov ax, stacks
                mov ss, ax
    ; top distance lines
                mov di, 0H
                mov cx, 8H
    calc_begin: add di, 0a0H
                loop calc_begin
    
                mov cx, 04H
    fill_lines: mov si, 0H
                
                add di, 40H     ; horizontal center
                push cx

                mov cx, 10H     ; 16 chars
    fill_line:  mov byte ptr dl, es:[si]
                mov byte ptr dh, es:[si + 10H]
                mov ds:[di], dx
                inc si
                add di, 2H
                loop fill_line

                pop cx
                add di, 040H    ; to next line
                loop fill_lines

                mov ax, 4C00H
                int 21H

codes ends

    end mainproc

在DosBox环境下运行(假定调用ml编译出的exe文件名为colors.exe):

step1: debug colors.exe

step2: 调用u命令, u命令查看代码段内存中汇编代码分布情况

step3: 调用g命令执行汇编代码。 从代码起始位置执行到到指定代码段内存位置。如: g 003D

运行效果如下:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值