1条回答 默认 最新
关注 80x86汇编语言编程:在九九乘法表中高亮显示结果
用汇编语言编程解答:
编程输出九九乘法表,然后通过键盘输入两个数后,对应位置的乘法运算高亮。
例如:输入4、5,那么,4 * 5 = 20 的位置高亮;输入 5、8,那么,5 * 8 = 40 的位置高亮。
题目链接:
http://zhidao.baidu.com/question/1883296639639871628.html
做而论道回答如下:(2014-12-10 10:52 网友采纳)
这个问题,需要用 INT 10H 进行定位显示。
有了 WINDOWS,DOS 窗口的界面设计,早已淘汰了。
追问:(2014-12-10 22:26),求大神编写程序啊,我这是作业要交的
回答:已经编好,太费劲了!
全部程序如下:
;===================================
ASSUME CS:CC, DS:QW
;-----------------------------------
QW SEGMENT
HH DB 0 LL DB 9 XX DW ? STR DB 13, 10 DB ' 00 00 00 00 00 00 00 00 00 00 ', 13, 10, 13, 10 DB ' 00 01 02 03 04 05 06 07 08 09 ', 13, 10, 13, 10 DB ' 00 02 04 06 08 10 12 14 16 18 ', 13, 10, 13, 10 DB ' 00 03 06 09 12 15 18 21 24 27 ', 13, 10, 13, 10 DB ' 00 04 08 12 16 20 24 28 32 36 ', 13, 10, 13, 10 DB ' 00 05 10 15 20 25 30 35 40 45 ', 13, 10, 13, 10 DB ' 00 06 12 18 24 30 36 42 48 54 ', 13, 10, 13, 10 DB ' 00 07 14 21 28 35 42 49 56 63 ', 13, 10, 13, 10 DB ' 00 08 16 24 32 40 48 56 64 72 ', 13, 10, 13, 10 DB ' 00 09 18 27 36 45 54 53 72 81 ', 13, 10, 13, 10 TIP1 DB 13, 10, ' Please input n1 : $' TIP2 DB 13, 10, ' Please input n2 : $'
QW ENDS
;-----------------------------------
CC SEGMENT
S_T:
MOV AX, QW MOV DS, AX MOV AX, 0B800H MOV ES, AX
;-------------------------
MOV AX, 0600H ;清屏 MOV BH, 0FH ;黑底白字 MOV CX, 0 MOV DX, 194FH INT 10H MOV AX, 0600H MOV BH, 0CEH ;红底黄字 MOV CX, 0 MOV DX, 144FH ;共21行 INT 10H
;-------------------------
M_LOOP:
MOV AH, 2 ;定位 MOV BH, 0 MOV DX, 0 INT 10H LEA DX, STR ;显示99表 MOV AH, 9 INT 21H
;--------------------
CALL IN_X MOV HH, DL LEA DX, TIP2 MOV AH, 9 INT 21H CALL IN_X MOV LL, DL
;--------------------
MOV AL, HH ;下面计算行号 MOV AH, 0 ADD AX, 1 MOV BX, 160 * 2 MUL BX SUB AX, 160 MOV XX, AX
;--------------------
MOV AL, LL ;下面计算列号 MOV AH, 0 MOV BX, 10 MUL BX ADD AX, 12 ADD AX, XX ;加上行号 MOV BX, AX
;--------------------
MOV AL, 0F0H ;2FH MOV ES:[BX - 3], AL ;写入属性,改变字符的显示颜色 MOV ES:[BX - 1], AL MOV ES:[BX + 1], AL MOV ES:[BX + 3], AL
;---------------------------
EXIT:
MOV AH, 4CH INT 21H
;---------------------------
IN_X:
MOV AH, 7 ;等待按键 INT 21H ;AL=ASCII码 CMP AL, '0' JB IN_X CMP AL, '9' JA IN_X MOV DL, AL MOV AH, 2 INT 21H AND DL, 0FH RET
;--------------------
CC ENDS
END S_T
;===================================
程序执行后,显示如下:
80x86汇编语言编程:在九九乘法表中高亮显示结果 - 非著名博主 - 电子信息之一角
哥只是技术的搬运工
http://xiangce.baidu.com/picture/detail/233969bda5418559e1d08957142fd2d3dccb69f1解决 无用评论 打赏 举报