80x86汇编语言编程:利用写显示缓冲区的方法,显示彩色文字
2016-01-25 12:04
405 查看
要求将数据段的数字,显示在屏幕的指定位置上。显示《红底绿字》。
题目链接: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
程序执行后,显示截图如下:
题目链接: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汇编语言编程--输入、储存与输出
- 51 汇编语言编程--输入密码
- 51 汇编语言编程:变速计数
- 80x86汇编语言编程:循环显示 26 个小写字母的 ASCII 码
- 51 汇编编程:使蜂鸣器发出“嘀、嘀。。。”报警声
- 80x86汇编语言编程:键入、过滤与显示
- 51 单片机编程:双路计数器
- 80x86汇编语言编程:显示杨辉三角形
- 80x86汇编语言编程:两个矩阵相乘
- 51 汇编编程:8×8 点阵驱动
- 51 汇编编程:倒计时交通灯
- 51 汇编编程:多路延时开关
- 51 汇编编程:中断的现场保护与恢复
- 51 汇编编程:一种单片机抢答器
- 51 汇编编程:停留保持的流水灯
- 80x86汇编语言编程:求两个单元中,有多少个对应的位是不同的
- 80x86汇编语言编程:求素数
- C# socket编程实践——简单聊天室
- 80x86汇编语言编程:输入0到9,输出hello world
- 80x86汇编语言编程:宏指令