80x86汇编语言编程:循环显示 26 个小写字母的 ASCII 码

要求使用汇编语言编程,循环显示 26 个小写字母的 ASCII 码。每行十个,按 ALT+F1 结束。


题目链接:

http://zhidao.baidu.com/question/556679820

http://zhidao.baidu.com/question/562426170


题目中的说明,有些简略,经过使用百度 Hi 交流得知,实际上是需要如下显示:


61H 62H 63H 64H 65H 66H 67H 68H 69H 6AH

6BH 6CH 6DH 6EH 6FH 70H 71H 72H 73H 74H

75H 76H 77H 78H 79H 7AH 61H 62H 63H 64H

65H 66H 67H 68H 69H 6AH 6BH 6CH 6DH 6EH

6FH 70H 71H 72H 73H 74H 75H 76H 77H 78H

79H 7AH 61H 62H 63H 64H 65H 66H 67H 68H

69H 6AH 6BH 6CH 6DH 6EH 6FH 70H 71H 72H

73H 74H 75H 76H 77H ……


按下 ALT+F1 结束,否则,不停的滚动输出。


为此,做而论道编写程序如下:


DATAS   SEGMENT

    XX   DB   'a'

    YY   DB   0

DATAS   ENDS

    

CODES   SEGMENT

    ASSUME   CS:CODES, DS:DATAS

START:

    MOV   AX, DATAS

    MOV   DS, AX

LOP2:

    MOV   AL, XX

    CALL  OUT_HEX


;===============在这里判断有没有按下 ALT+F1

    MOV   AH, 1      ;判断有无键输入

    INT   16H

    JZ    NEXT       ;无

    MOV   AH, 0      ;有, 读键

    INT   16H

    CMP   AX, 6800H

    JE    EXIT

;==============按下 ALT+F1 结束程序


NEXT:

    INC   XX

    CMP   XX, 'z' + 1 

    JB    LOP1

    MOV   XX, 'a'

LOP1:

    INC   YY

    CMP   YY, 10

    JNZ   LOP2

    MOV   YY, 0

    CALL  CR_LF

    JMP   LOP2

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

EXIT:

    MOV   AH, 4CH

    INT   21H

;=====================================

CR_LF:

    MOV   AH, 2

    MOV   DL, 13

    INT   21H

    MOV   DL, 10

    INT   21H

    RET

;=====================================

OUT_HEX:

    MOV   AH, 0

    MOV   BL, 16

    DIV   BL

    PUSH  AX

    MOV   DL, AL

    MOV   AH, 2

    ADD   DL, '0'

    CMP   DL, 3AH

    JB    OUT1

    ADD   DL, 07H

OUT1:

    INT   21H

;-----

    POP   AX

    MOV   DL, AH

    MOV   AH, 2

    ADD   DL, '0'

    CMP   DL, 3AH

    JB    OUT2

    ADD   DL, 07H

OUT2:

    INT   21H

    MOV   DL, 'H'

    INT   21H

    MOV   DL, ' '

    INT   21H

    RET

;=====================================

CODES   ENDS

    END   START


程序运行后,确实可以不停的滚动输出:


61H 62H 63H 64H 65H 66H 67H 68H 69H 6AH

6BH 6CH 6DH 6EH 6FH 70H 71H 72H ……


按下 ALT+F1,才能结束。


程序中,对组合键 ALT+F1 的检测,做而论道并不很熟悉,这里使用的方法,是提问者给出的。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值