32位除以10,打印10进制字符串代码

2023-12-04 14:58

本文主要是介绍32位除以10,打印10进制字符串代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

根据这段代码调试而来:

     MOV BX,11H     ;BX为除数
        MOV DX,5678H   ;DX存高位
        MOV AX,1234H   ;AX存低位
        MOV DI,AX      ;先保存好低位
                        
                        ;先计算高位,所得商AX即为最后商的高位
                        ;         所得余DX即为接下来低位运算的DX
        MOV AX,DX
        MOV DX,0
        DIV BX
                        ;再计算低位,所得商AX即为最后商的低位
                        ;          所得余DX即为最后的余
        MOV AX,DI
        DIV BX 

 

;32位除以10,打印10进制字符串代码

 org 100h
 jmp start

 itostr dw 12 dup(?)  
 
 start:
 
     MOV DX,0fH   ;DX存高位
     MOV AX,4240H   ;AX存低位

call divwshu
 
    mov cx,si
    sub si,1
    
 loop2:   
    mov dx, si+itostr   
   
    add dl,30h
    
    mov ah,02h
    int 21h  
     
    dec si
    
    loop loop2
  
  mov ax,4c00h
  int 21h
  
  
divwshu:

    push bp

    mov bp,sp

    sub sp,20h
    
    push dx
    push ax
    push di
    
   MOV BX,0aH     ;BX为除数
    mov si,0

 
lp2:   mov ax,[bp-24h]    
    mov dx,[bp-22h]
       MOV DI,AX      ;先保存好低位
                        
                        ;先计算高位,所得商AX即为最后商的高位
                        ;         所得余DX即为接下来低位运算的DX
        MOV AX,DX
        MOV DX,0
        DIV BX        ;需要判断商是否为0,是0说明需要和前面的AX一起做除法

    cmp ax,0
    je nextdiv

    mov di,ax    ;方便查看值
    mov [bp-22h],ax
            
                        ;再计算低位,所得商AX即为最后商的低位
                        ;          所得余DX即为最后的余
        MOV AX,[bp-24h]
        DIV BX 
    cmp ax,0
    je end2           
    
    mov [bp-24h],ax
    mov si+itostr,dx     
    mov cx,si+itostr
    
    inc si
    jmp lp2

nextdiv:
    mov ax,[bp-24h]    
    mov dx,[bp-22h]

next:    div bx     
    
    cmp ax,0
    je end2

    ;mov [bp-24h],ax    
    mov si+itostr,dx  
    mov cx,si+itostr
    
    mov dx,0
    ;mov [bp-22h],dx
    inc si     

    jmp next
end2:   
 
    mov si+itostr,dx 

    mov cx,si+itostr
     
    inc si      
   
    pop di
    pop ax
    pop dx    
    
    mov sp,bp      
    pop bp

    ret


 

这篇关于32位除以10,打印10进制字符串代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/453880

相关文章

C++使用栈实现括号匹配的代码详解

《C++使用栈实现括号匹配的代码详解》在编程中,括号匹配是一个常见问题,尤其是在处理数学表达式、编译器解析等任务时,栈是一种非常适合处理此类问题的数据结构,能够精确地管理括号的匹配问题,本文将通过C+... 目录引言问题描述代码讲解代码解析栈的状态表示测试总结引言在编程中,括号匹配是一个常见问题,尤其是在

Java中String字符串使用避坑指南

《Java中String字符串使用避坑指南》Java中的String字符串是我们日常编程中用得最多的类之一,看似简单的String使用,却隐藏着不少“坑”,如果不注意,可能会导致性能问题、意外的错误容... 目录8个避坑点如下:1. 字符串的不可变性:每次修改都创建新对象2. 使用 == 比较字符串,陷阱满

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

Java实现状态模式的示例代码

《Java实现状态模式的示例代码》状态模式是一种行为型设计模式,允许对象根据其内部状态改变行为,本文主要介绍了Java实现状态模式的示例代码,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来... 目录一、简介1、定义2、状态模式的结构二、Java实现案例1、电灯开关状态案例2、番茄工作法状态案例