汇编编程 按以下形式输出ascii码 成功有加分

按以下格式输出[00h,0FFh]范围内的全部ASCII字符及16进制ASCII码:

求问汇编程序,多谢!11月26日下午18:00前第一个提供正确解答者,承诺30分!

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追问

我masm、link以后运行程序,只是闪了一下就消失了,怎么让它保持显示那个界面?

追答

哦,你不要用鼠标操作。

你应该先打开 DOS 窗口,用键盘操作,编译、连接、执行...

结束后,仍然是 DOS 窗口,就会看清楚了。
----
可以在我的空间找到图片,这里不能写链接,自己找找吧。

日期:2012-12-24 17:39
标题:80x86汇编语言编程:在屏幕上显示彩色 ASCII 码

追问

额,我是用命令提示符啊,还是这样,麻烦你帮我截一张效果图吧

追答

这里不能写链接。

马上用《百度私信》来交流。

好了,现在,看你的百度私信去。

温馨提示:答案为网友推荐,仅供参考
相似回答