汇编将输入的十进制数字转换成二进制,八进制,十六进制,代码写出来了,但是却无法正常运行 1C

data segment
mesg db 'please input :',0ah,0dh,'$'
buf db 5
db ?
db 5 dup(?)
buf1 db 5 dup('0')
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
lea dx,mesg ;在屏幕上显示mesg标号后的内容
mov ah,9
int 21h

mov bx,10

lea dx,buf  ;从键盘输入一个字符到缓冲区
mov ah,0ah
int 21h

mov si,offset buf+2 
mov di,offset buf1
mov cl,buf+1    ;将实际输入字符个数送入cl中

aga:
mov al,[si] ;将输入的第一个字符对应的ASCII码送入al中
sub al,30h ;获得输入的第一个数的原值
mov ah,0
xchg ax,[di]

mul bx

xchg [di],ax
add [di],ax
inc si
loop aga
mov bx,[di]
mov dl,0ah
mov ax,2
int 21h
mov dl,0dh
int 21h
mov cx,16
last:
mov dl,'0'
rol bx,1
jnc next ;与cf标志有关,若不进位,即cf=0,则跳转
mov dl,'1'
next:
mov ah,2 ;显示dl中的字符
int 21h
loop last
mov ah,2
mov dl,0ah
int 21h
mov dl,0dh
int 21h ;换行
mov cx,4
aga2:
push cx
mov cl,4
rol bx,cl ;将bh的高4位循环左移入al的低4位中
pop cx
mov dx,bx
and dl,0fh ;将dl的高4位清零,保留dl的低4位,即bh中的高4位
cmp dl,10
jc then ;进位则跳转,即dl小于10
add dl,7
then:
add dl,30h
mov ah,2
int 21h
loop aga2
mov dl,0ah
int 21h
mov dl,0dh
int 21h ;换行

;========================转换为8进制==============================
mov dl,'1' ;假设bx=1100 0000 0000 0000
rol bx,1 ;逻辑循环左移则产生进位
jc then1 ;产生进位后则跳转到then1,显示8进制第一位为1
mov dl,'0' ;未产生进位,则第一位显示0
then1:
mov ah,2
int 21h
mov cx,5 ;(16-1)/3=5,3个二进制数表示一个八进制数
aga3:
push cx
mov cl,3
rol bx,cl ;循环左移3位
pop cx
mov dx,bx
and dl,07h ;07h=0000 0111b,将dl的高4位清零,低4位的第一位清零
add dl,30h
mov ah,2
int 21h
loop aga3

mov ah,4ch
int 21h

code ends
end start


不知道错误在哪里...
还请大神指教

1

1个回答

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
python实现二,八,十六进制与十进制之间的转换
对于不同进制的转化: 1、把不同进制转化为十进制 int('02245', 8) # 1189 #第一个参数是需要转成十进制的字符串 #第二个参数是第一个参数的类型,比如是2、8或者16进制 int('0xD32C',16) # 54060 int('0b10', 2) # 2 2、把不同进制转化为二进制 hex(10) #把10进制转化为16进制 0xA oct(10) ...
汇编语言(二):从键盘输入十进制数,输出该十进制数的十进制,二进制(B),十六进制(H),八进制(Q)表示
;从键盘输入十进制数,输出该十进制数的十进制,二进制(B),十六进制(H),八进制(Q) ;用循环左移指令做的输出函数 DATA SEGMENT ;此处输入数据段代码 INFO1 DB 0DH,0AH,'INPUT A NUMBER:$' INFO2 DB 0DH,0AH,'THE DECIMAL OF THIS NUMBER IS:$' INFO3 DB 0DH,0A
Java十进制转换为二进制、八进制、十六进制
public class JinZhiZhuanHua { public static void main(String[] args) { //使用查表法将十进制转换为二进制、八进制、十六进制 int num=60; toBin(num); tooct(0); toHex(60); } //转换为二进制 public static void toBin(in
汇编语言 十六进制转换为二进制
汇编语言程序,十六进制转换为二进制
python 2进制,8进制,10进制,16进制转换
python里的进制转换并不复杂,大家只需要记住,目标进制为2进制时,就用bin(),目标进制是8进制的时候用oct(),目标进制是10进制的时候用int(),目标进制是16进制的时候用hex()      #coding=utf-8 ''' Created on 2016-3-28 @author: Administrator ''' class NumberType():
Java 实现控制台输入任意字符,转换成十六进制、二进制和十进制
[code="java"]import java.io.*; public class StringtoNum { /* * 16进制数字字符集 */ private static String hexString = "0123456789ABCDEF"; /* * 将字符串编码成16进制数字,适用于所有字符(包括中文) */ public st...
C语言 十进制数转化为二进制 八进制 十六进制数
    对于刚开始学习C语言的来说,我们知道%d可以表示十进制的数,%o可以表示八进制的数,%x用来表示十六进制的数,但却没有来表示二进制数的。    这就是相对应的八进制数和十六进制数#include <stdio.h> int main() { int n; printf("请输入一个十进制的整数:\n"); scanf("%d",&n); printf("八进制数...
汇编语言:从键盘输入十进制数,输出该十进制数的十进制,二进制(B),十六进制(H),八进制(Q)表示
;从键盘输入十进制数,输出该十进制数的十进制,二进制(B),十六进制(H),八进制(Q) DATA SEGMENT ;此处输入数据段代码 INFO1 DB 0DH,0AH,'INPUT A NUMBER:$' INFO2 DB 0DH,0AH,'THE DECIMAL OF THIS NUMBER IS:$' INFO3 DB 0DH,0AH,'THE HEXIMAL
python(十进制转换成二进制、八进制、十六进制)(正则)
  #coding=utf-8 import re print("十进制转换成二进制、八进制、十六进制") num = input("请输入一个十进制的整数:") pattern = re.compile(r'[^0-9]+') if(re.search(pattern,num)):     print("输入的格式不正确") else:     num = int(num)     #十...
Python 二进制、八进制、十六进制转换函数
二进制:bin() 八进制:oct() 十六进制:hex()
c语言(dc)中输入十进制整数转换输出十六八进制
//输入一个十进制整数,分别转换输出十六进制和八进制。 //二进制(B)、八进制(O)、十进制(D)、十六进制(前缀OX,后缀H)之间的转化 #include <stdio.h> int main () { int x; printf("请你输入x:"); scanf("%d",&x); printf("十六进制为:%x\n八进制为:%o\n",x,x...
黑马程序员—操作数组的练习:十进制数转换二进制、八进制、十六进制数。
---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ---------------------- 说明:本次练习采用移位的方法针对int类型数进行转换。 移位思想将十进制数转换二进制、八进制、十六进制数的思路: 计算机以二进制形式存储数值,所以进制的转换都是对二进制数进行操作。 所谓的类型转换实际上是将计算机存储的
Java中十进制转换为二、八、十六进制
        Java 中 Integer 类为我们提供了二进制、八进制、十进制的转换方法,分别封装起来调用方法即可完成十进制数的任意转换。代码如下:package com.aaa.Test; /** * @Description 十进制数分别转换为二、八、十六进制 * @author 刘** * @version v1.0 * @date 2018-3-6 **/ public c...
python实现进制转换-十进制-二进制-八进制-十六进制
1、python代码 num = int(input("输入十进制数字:")) print("十进制数为:", num) print("转换为二进制为:", bin(num)) print("转换为八进制为:", oct(num)) print("转换为十六进制为:", hex(num)) 2、输出结果 ...
编程从键盘输入一个一位十六进制数,定义一个子程序将其以二进制形式输出到屏幕
必要参考程序,能让人容易解决 很多问题的
VB十进制数转换为二进制、八进制、十六进制。
VB的十进制数转换为二进制、八进制、十六进制。 来源网络
无符号整数转换为二进制、八进制和十六进制
 2、编一程序,实现将输入的一个表示,分别存入字符数组中并输出。(提示:算法采用模拟人工法。) 说明:计算机模拟人工是编程中常用的方法,这种方法要求编程者首先分析在人工方式下解决问题的过程,从中找出步骤和规律,然后编写程序,按照人工解决问题的步骤和规律进行操作。
整型数转二进制,八进制,十进制,十六进制字符串及浮点数转字符串Demo
概述:     这次主要是一个整数int转为各种进制字符串以及浮点数double转为字符串的操作。当然,前提条件是不可使用库函数sprintf,由于嵌入式开发环境,调用库后可能编译后的可执行文件过大,这里就是自己封装的一个简单转换的函数。留作笔记,以后也可直接使用,不用再找,麻烦。 Demo:     废话不多说,直接上源码,不过对于浮点数转换那里,由于精度问题,如果输入的浮点数精度超过我们...
汇编-进制转换
进制之间的转换记录 常见的进制范围表示方法: 二进制数:01           2个数字 逢二进一:0+0=0,0+1=1,1+0=1,1+1=(1)0 八进制数:01234567      8个数字 逢八进一:1+5=6,5+6=13 十进制数:0123456789           10个数字 逢十进一:1+5=6,5+6=11 十六进制数:0123456789ABCDEF   ...
编程实现将10进制数字转换为16进制数字,要求从键盘输入十进制数字输出对应的二进制数字,例如输入255,输出FF。(参考代码)
#include void main() {     int iTen2Sixt,iRTen2Sixt = 0,iTmp = 0,iCount = 0;     printf("Please input the decimal nummber:\n");     scanf("%d",&iTen2Sixt);       //逆序iTen2Sixt     while (iTen
python:整数在二进制、八进制、十进制和十六进制之间转换
本文使用python中自带函数将一个整数在二进制、八进制、十进制和十六进制之间自由转换。     这个整数可能是个int,也可能是个string。     用到了otc,hex,bin,format这四个函数,和int这个class。 上面几个函数的用法:     hex(integer) 将integer转换为16进制,形式为0x0123456789abcdef。integer必须为整型...
输入一个十进制数 转换成 八进制数输出(java源码)
对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数。java代码实现源码。
汇编语言进制(二进制,八进制,十进制,十六进制)转换
汇编语言各进制(二进制,八进制,十进制,十六进制)之间的转换,一网打尽,包括源码,word文档和PDF文档
mips汇编语言之将十进制整数转换为十六进制输出
代码在pcspim 7.0下编译通过############# programed by stevie zou#######  10-15-2008 ############## text segment #################           .text           .globl     mainmain:     li    $v0,   5           sys
java中二进制,八进制,十六进制之间的转换
java中进行二进制,八进制,十六进制,十进制间进行相互转换 关键字: java 进制转换 十进制转成十六进制: Integer.toHexString(int i) 十进制转成八进制 Integer.toOctalString(int i) 十进制转成二进制 Integer.toBinaryString(int i) 十六进制转成十进制 In...
栈的应用--数制转换(十进制数转换为二进制、八进制、十六进制)
结果图: 代码如下:#include<stdio.h> #include<stdlib.h> #define ERROR 0 #define OK 1 typedef int Status; typedef int ElemType; typedef struct StackNode{ ElemType data; struct StackNode *next; }StackNod
MIPS汇编语言十进制转十六进制
MIPS汇编语言十进制转十六进制,在Mars4.5运行测试成功
C语言栈的实现及利用栈实现二进制到八进制的转换
小菜最近复习数据结构~~~ 很简单的东西还是要敲阿 就这样  po代码 #include #include #include #define Stack_Init_Size 20 #define Stack_Increasement 10 typedef char Elemtype; typedef struct{ Elemtype *base;
汇编-十六进制转二进制输出
data segment binval dw 0B39h data endscode segment assume cs:code,ds:data start: mov ax,data mov ds,ax ;--------------- mov bx,binval mov cx,16 LP1: rol bx,1 mov dl,0 adc dl,30h m
Python 把十进制转换为二进制(或八进制、十六进制)
 把十进制转换成其他进制的思想是:整除取倒余 '把十进制数转换为二进制数' result = &quot;&quot; num = int(input(&quot;请输入一个十进制&quot;)) #验证结果 print(bin(num)) while(not(num == 0)): ret = num %2 num = num/2 result = str(ret) + result print '0b' ...
汇编语言编写二进制数转换为十六进制书显示
masm3.0环境下编写 文件后缀名.asm 部分代码: .486 DATA SEGMENT USE16 BNUM DW 0001001000110100B ;1234H DW 0101011001111000B ;5678H DW 0001101000101011B ;1A2BH DW 0011110001001101B ;3C4DH BUF DB 4 DUP(?),'H $' COUNT DB 4 DATA ENDS CODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA BEG: MOV AX,DATA MOV DS,AX MOV CX,4 MOV BX,OFFSET BNUM
二进制,八进制,十进制,十六进制之间的转换.以及二进制转十进制8421
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------ 首先说一下各进制的表示方法: 二进制:0b100 八进制:0100 十进制:100 十六进制:0x100 先从简单的其他进制转十进制开始吧! 十进制转十进制: 100 = 0*10^0 +0*10^1 +1*10^2   0乘以10的0次方 + 0乘以1
超长的十六进制数转换为八进制
之前在oj上做过,今天做蓝桥杯基础练习又遇到了这题 but没有一遍AC 基础练习 十六进制转八进制 时间限制:1.0s 内存限制:512.0MB 提交此题 锦囊1 锦囊2 问题描述   给定n个十六进制正整数,输出它们对应的八进制数。 输入格式   输入的第一行为一个正整数n (1&amp;amp;amp;lt;=n&amp;amp;amp;lt;=10)。   接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六...
二进制、十进制、八进制、十六进制之间的转换
二进制三位一组分开就是八进制, 四位一组就是十六进制一、      二进制与十进制、八进制、十六进制的转换1、二进制与十进制的转换(1)二进制转十进制方法:“按权展开求和”【例】:整数转换 【例】:小数转换  (0.101)2 = 1x2-1 +0x2-2 +1x2-3 = (0.625)10规律:个位上的数字的次数是0,十位上的数字的次数是1,......,依次递增,而十分位的数字的次数是-1,...
Python编程:二进制,八进制,十六进制与十进制之间的转换
进制转换的函数 bin() 10进制转2进制 oct() 10进制转8进制 hex()10进制转16进制 int() *进制转10进制 各进制之间转换 ↓ 2进制 8进制 10进制 16进制 2进制 - bin(int(x, 8)) bin(int(x, 10)) bin(int(x, 16)) 8进制 oct(int(x, 2)) - oct(int(x, 10)) oc...
C语言-顺序栈实现十进制转换为二进制-八进制-十六进制
C语言-顺序栈实现十进制转换为二进制-八进制-十六进制
数据的转化与表示(二进制、八进制、十六进制、十进制)
       在计算机中我们常用的进制包括:二进制、八进制、十进制与十六进制,它们之间区别在于数运算时是逢几进一位。比如二进制是逢2进一位,十进制是逢10进一位。 2进制、8进制、16进制转换十进制,只需要使用“按权展开法”既可。 ​​​​​比如:      (二进制转十进制)       10100.01 = 1*2^4+0*2^3+1*2^2+0*2^1+0*2^0+0*2^-1+1*2^-...
c语言编程题:从键盘输入一个十进制数,将其转换为二进制、八进制和十六进制数,并同时输出。
c语言编程题:从键盘输入一个十进制数,将其转换为二进制、八进制和十六进制数,并同时输出。
二进制、八进制、十进制、十六进制的相互转换(简单易懂)
1.十进制 想要转换为 n进制:   整数部分不停地除以n,直到商为0即可,记录下每次的余数,从最后一个余数开始排列即可。  小数部分不停地乘以n,每次乘完后把个位数的数字记录后再变为0,再进行下一次乘法运算,直到小数部分为0即可,记录下每次乘 法结束后个位数的数字为多少,从第一个数字开始排列即可。 2.n进制转换为十进制:  n进制上的每一个数字乘以位权再把它们全部加起来。 (如果不懂...
二进制,八进制,十进制,十六进制转换算法
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents)背景(Contexts)进制转换算法(Convert) (二、八、十六进制) → (十进制) 二进制 → 十进制八进制 → 十进制十六进制 → 十进制 (十进制) → (二、八、十六进制) 十进制 → 二进制十进制 → 八进制十进制 → 十六进制 (二进制) ↔ (八、十六进制) 二进制
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 来了大数据培训机构怎样 java需要学习二进制吗