汇编语言作业(四)在屏幕上显示N个星号

班级:  计算机14-1  姓名: 许恺     学号: 2014011329  日期: 2016.4.8          

一、编写程序

1.从键盘输入一个十进制个位数N1-9),然后在屏幕上显示N个星号。

例如:输入3,然后显示:***

1)程序清单:

code segment

assume cs:code

   main proc far

start:

   mov ah,01h

   int 21h

   sub al,30h

   mov cl,al

   mov ch,0

l1:

   mov dl,'*'

   mov ah,02h

   int 21h

   loop l1

   mov ah,4ch

   int 21h

   main endp

code ends

end start

        

2)运行结果(截图):

 

2.从键盘输入一个不大于255的十进制数,在屏幕上输出其对应的十六进制数。

例如:若输入125,输出7D。

        若输入255,输出FF。

提示:本题需将1、2、5三个字符拼接成相应的十进制数,即1、2、5变成数值后,再计算((0*10+1)*10+2)*10+5,拼成125后,以十六进制形式输出。

1)程序清单

code segment

assume cs:code

    main proc far

start:

        mov ah,01h

        int 21h

        mov bl,0

        sub al,30h

        mov bh,64h

        mul bh

        add bl,al

        mov ah,01h

        int 21h

        sub al,30h

        mov bh,0ah

        mul bh

        add bl,al

        mov ah,01h

        int 21h

        sub al,30h

        add bl,al

mov cx,2

   l1:  push cx

mov cl,4

        rol bl,cl

        mov al,bl

        and al,0fh

        add al,30h

        cmp al,39h

        jbe l2

        add al,07h

   l2:  mov dl,al

        mov ah,02h

        int 21h

pop cx

        loop l1

        mov ah,4ch

        int 21h

code ends

    main endp

end start

2)运行结果(截图):

 

二、编程体会

循环好难啊,还有各种移位输出,感觉熟练运用选择和循环还要很长一段时间,移位是我的弱项,还是没有理解他的用处,还有堆栈的使用也不熟,真是还不能很好的运用这些兵器(寄存器)。继续努力。

原文地址:https://www.cnblogs.com/xukaiae86/p/6439535.html