zoukankan      html  css  js  c++  java
  • 汇编语言作业(七)

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

    一、编写程序

    1.从键盘输入一个不超过8的个位数,计算该数的阶乘,并以十进制制式输出。

    要求:

    1)输入数据在主程序中实现;

    2)计算阶乘的功能用子程序实现,子程序的名字为:fac;

    3)以十进制形式输出结果的功能用子程序实现,子程序的名字为:output;

    4)各子程序通过寄存器传递参数;

    5)输出格式要美观,要有适当的提示。

    1)程序清单:

    data segment

     s1 db 'please input an integer between 0 to 8:$'

     s2 db 'its factorial=$'

    data ends

    stack segment stack

     dw 30 dup(?)

    stack ends

    code segment

     assume cs:code,ds:data,ss:stack

     main proc far

    start:

       mov ax,data

       mov ds,ax

       lea dx,s1

       mov ah,09h

       int 21h

       mov ah,01h

       int 21h

       mov dh,al

       mov dl,0dh

       mov ah,02h

       int 21h

       mov dl,0ah

       mov ah,02h

       int 21h

       mov al,dh

       sub al,30h

       mov ah,0

       call fac

       mov bx,ax

       lea dx,s2

       mov ah,09h

       int 21h

       mov ax,bx

       mov dx,0

       call output

       mov ah,4ch

       int 21h

       fac proc near

         mov cl,al

         dec cl

    l1:  mul cx

         loop l1

         ret

       fac endp

       output proc near

         mov cx,0000h

    l3:  mov bx,000ah

         cmp ax,0

         jbe l2

         div bx

         push dx

         mov dx,0000h

         inc cl

         jmp l3

    l2:  pop dx

         add dx,0030h

         mov ah,02h

         int 21h

         loop l2

         ret

       output endp

     main endp

    code ends

    end start

    2)运行结果(截图):

     

    二、编程体会

    其实感觉堆栈段不用编写,因为之前不写也行,开始已经写好了,后来知道要有提示语句,又加输出字符串时就出错了,在压栈的时候出现了死循环,是用dx输出字符串的时候出了问题,最后是重新把dx赋0才解决,这次更加理解了堆栈的使用,以后会用的更加的顺手和频繁。

  • 相关阅读:
    SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
    mybatis自定义枚举转换类
    javaweb分布式事务
    javaweb的负载均衡,tomcat集群和session共享
    分布式并发锁处理
    FindBugs规则整理
    SpringMVC中文乱码,字符过滤器配置
    mybatis快速入门
    黑盒测试常用的测试方法
    问题及解决方案小技巧
  • 原文地址:https://www.cnblogs.com/xukaiae86/p/6439563.html
Copyright © 2011-2022 走看看