80x86 汇编语言编程:输出指定行数的星号

;汇编语言输出星号


;用键盘输入一个数字,按回车之后,显示相应行数的星号,第一行一个,第二行两个,第三行三个。

;以此类推!要用汇编语言编写。


;题目链接:http://zhidao.baidu.com/question/2138700462467944348.html


;做而论道早已回答了这个问题,但是百度知道抽风了,不给大家显示。


;申诉后,也没有反应。;就写在这里吧。

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

ASSUME    CS:CC, DS:QWER

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

QWER  SEGMENT  PARA  PUBLIC  'DATA'

    TIP1  DB  'Please input a number(1~9): $'

    TIP9  DB  13, 10, 7, 'Press any key to exit...' 

    CRLF  DB  13, 10, 36

QWER  ENDS

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

CC  SEGMENT  PARA  PUBLIC  'CODE'


START:

    MOV   AX, QWER

    MOV   DS, AX


    LEA   DX, TIP1

    MOV   AH, 9

    INT   21H

IN_X:

    MOV   AH, 1

    INT   21H

    CMP   AL, '1'

    JB    IN_X

    CMP   AL, '9'

    JA    IN_X

    AND   AL, 0FH

    MOV   CL, AL

    MOV   CH, 0

    CALL  CR_LF

    CALL  CR_LF

    MOV   DL, '*'

    MOV   AH, 02H

    MOV   BL, 0

X1:

    INC   BL

    MOV   BH, 0

X2:

    INT   21H

    INC   BH

    CMP   BH, BL

    JNE   X2

    CALL  CR_LF        ;打印完了一行, 下面准备下一行数据

    LOOP  X1

EXIT: 

    LEA   DX, TIP9

    MOV   AH, 9

    INT   21H

    MOV   AH, 1

    INT   21H

    MOV   AH, 4CH     ;结束程序 

    INT   21H

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

CR_LF  PROC  NEAR

    PUSH  AX

    PUSH  DX

    LEA   DX, CRLF

    MOV   AH, 9

    INT   21H

    POP   DX

    POP   AX

    RET

CR_LF  ENDP

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

CC  ENDS

    END   START

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


程序工作时的画面如下:


C:\MASM>WW

lease input a number(1~9): 8


*

**

***

****

*****

******

*******

********


Press any key to exit...


C:\MASM>


输入数据的正确性,需要操作者自己掌握,程序并没有严格判定。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值