我是靠谱客的博主 忧郁饼干,最近开发中收集的这篇文章主要介绍80x86汇编语言编程:在屏幕上显示彩色 ASCII 码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

有个题目,要求按照下图格式显示 ASCII 码、16 进制形式和 10 进制的形式。


80x86汇编语言编程:在屏幕上显示彩色 ascii 码 - 非著名博主 - 电子信息角落


原题链接:http://zhidao.baidu.com/question/510082443.html


做而论道编写的程序如下:


ASSUME CS:CODE, DS:DATA

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

DATA SEGMENT

    HHH  DW  ?   ;(0 ~ 24) * 160

    LLL  DW  ?   ;(0 ~ 79) * 2

    NNN  DB  ?   ;0 ~ 255

    G1   DB  ?

    G0   DB  ?

    B2   DB  ?

    B1   DB  ?

    B0   DB  ?

DATA ENDS

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

CODE SEGMENT

START:

    MOV  AX, DATA

    MOV  DS, AX

    MOV  AX, 0B800H

    MOV  ES, AX

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

    MOV  NNN, 0

    MOV  LLL, 0

M_L:

    MOV  HHH, 0

M_H:

    CALL NNN_G2_B3

    CALL PRINT_ONE

    ADD  HHH, 160

    INC  NNN

    CMP  NNN, 0

    JE   EXIT

    MOV  AL, NNN

    MOV  AH, 0

    MOV  BL, 25

    DIV  BL

    CMP  AH, 0

    JNE  M_H

    ADD  LLL, 14

    JMP  M_L

EXIT:

    MOV  AX, 4C00H

    INT  21H

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

NNN_G2_B3  PROC

    MOV  AL, NNN

    MOV  AH, 0

    MOV  BL, 16

    DIV  BL

    CMP  AL, 10

    JB   A30

    ADD  AL, 7

A30:ADD  AL, '0'

    MOV  G1, AL

    CMP  AH, 10

    JB   A31

    ADD  AH, 7

A31:ADD  AH, '0'

    MOV  G0, AH

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

    MOV  AL, NNN

    MOV  AH, 0

    MOV  BL, 10

    DIV  BL

    ADD  AH, '0'

    MOV  B0, AH

    MOV  AH, 0

    DIV  BL

    ADD  AH, '0'

    MOV  B1, AH

    ADD  AL, '0'

    MOV  B2, AL

    RET

NNN_G2_B3  ENDP

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

PRINT_ONE  PROC

    MOV  AL, NNN

    MOV  AH, 0CH    ;C亮红

    MOV  BX, HHH

    MOV  DI, LLL

    MOV  ES:[BX + DI], AX

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

    MOV  AL, G1

    MOV  AH, 0AH    ;A亮绿

    MOV  ES:[BX + DI + 2], AX

    MOV  AL, G0

    MOV  ES:[BX + DI + 4], AX

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

    MOV  AL, B2

    MOV  AH, 09H    ;9亮兰

    MOV  ES:[BX + DI + 6], AX

    MOV  AL, B1

    MOV  ES:[BX + DI + 8], AX

    MOV  AL, B0

    MOV  ES:[BX + DI + 10], AX

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

    MOV  AL, ' '

    MOV  ES:[BX + DI + 12], AX

    RET

PRINT_ONE  ENDP

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

CODE ENDS

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

    END  START


程序执行后,显示画面就如本文开头的插图所示。


注:为了显示清晰起见,做而论道设置的字符颜色都使用了“亮”色。


如果想要按照原题要求显示,应该怎样改呢 ?自己试试看吧。


最后

以上就是忧郁饼干为你收集整理的80x86汇编语言编程:在屏幕上显示彩色 ASCII 码的全部内容,希望文章能够帮你解决80x86汇编语言编程:在屏幕上显示彩色 ASCII 码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部