80x86汇编语言编程:利用写显示缓冲区的方法,显示彩色文字

要求将数据段的数字,显示在屏幕的指定位置上。显示《红底绿字》。


题目链接:http://zhidao.baidu.com/question/541265076.html


程序如下:


ASSUME   CS:CODE, DS:DATA, SS:STACK

;-----------------------------------

DATA   SEGMENT

    DW   123, 12666, 1, 8, 3, 38

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   SI, 0

    MOV   DI, 506H     ;显示屏的偏移地址


    MOV   CX, 6        ;数据段的6个数据

S1:

    PUSH  CX     

    CALL  DTOC         ;调用函数,将整型转化为字符串,在显示屏显示

    ADD   SI, 2

    ADD   DI, 2        ;DI指向下一个显示的位置

    POP   CX

    LOOP  S1

    MOV   AX, 4C00H

    INT   21H

;-----------------------------------

DTOC:

    MOV   AX, [SI]

    MOV   BX, 10

    MOV   CX, 0

D_LOOP1:

    SUB   DX, DX       ;DX清零

    DIV   BX

    PUSH  DX

    INC   CX

    CMP   AX, 0

    JNZ   D_LOOP1

    MOV   AH, 2

D_LOOP2:

    POP   DX

    CALL  SHOW_STR     ;每求的一个余数就调用显示函数

    LOOP  D_LOOP2

    RET

;-----------------------------------

SHOW_STR:              ;显示每个数据除10后的余数功能

    MOV   BX, 0B800H

    MOV   ES, BX

    ADD   DX, 4A30H    ;余数转化为ASCII码进行显示

    MOV   ES:[DI], DX

    ADD   DI, 2        ;DI指向下一个显示的位置

    RET

;-----------------------------------

CODE   ENDS

    END   START


程序执行后,显示截图如下:

80x86汇编语言编程:利用写显示缓冲区的方法,显示彩色文字 - 非著名博主 - 电子信息角落


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值