zoukankan      html  css  js  c++  java
  • 《汇编程序》王爽实验10.3的解法

    一、实验要求

    编写一个子程序,实现将一个数值转换为表示十进制数的字符串


    二、程序接口

    名称:dtoc
    功能:将word型数据转变为十进制数的字符串,字符串以0为结尾符
    参数:(ax) = word型数据
      ds:si指向字符串的首地址
    返回:无


    三、算法概述

    1、可以反复调用除法运算除以10d取余数,直到商为0,可以获得十进制各位码

         例如:

    10 |  12666                 6

          ——————

       10 |    1266              6

            —————

           10 |  126              6

                ————

             10 | 12               2

                  ———   

                 10 | 1             1

                      ——

                         0

    2、对十进制各位码加上30h就转换成为了各位的ASCII值


    解法

    ;子程序描述
      ;名称: d2c
      ;功能: 将数字转换成字符串形式,放入[DI]为起始的内存单元中
      ;参数: (dx)=dword型数据的高16位 (ax)=dword型数据的低16位
      ;返回: 以0结尾的字符串,放在[DI]为起始地址的内存单元中
      d2c:
        call divdw
        add cx,30h  ;得到的余数转化为字符串
        push cx
        mov cx,ax
        jcxz ok
       
        jmp d2c
      ok:
        mov ax,64
        mov cx,sp
        sub ax,cx
        mov cl,2
        div cl  ;得到字符的个数
        mov ch,0
        mov cl,al   ;设置循环的次数
        sub cl,1
       reverse: ;以正确的顺序放入字符串
        pop ax
        mov [di],al
        inc di
       
        loop reverse
        mov al,0
        mov [di],al
        inc di
       
        ret


  • 相关阅读:
    简单的结账功能(可用于各种结账)
    有关菜单进行“估清”的功能
    在线客服~~
    在windows下安装GIT
    GIT之二 基础篇(2)
    简单模仿javascript confirm方法的例子
    微信公众平台开发 第三篇
    微信公众平台开发 第二篇
    微信公众平台开发 第一篇
    GIT之二 基础篇(1)
  • 原文地址:https://www.cnblogs.com/cxjchen/p/2969004.html
Copyright © 2011-2022 走看看