精华内容
下载资源
问答
  • 汇编二进制转换asciiProblem statement: 问题陈述: Write an assembly level program in 8085 which ... 在8085中编写一个汇编级程序,该程序将二进制数字转换为ASCII数字。 Assumptions: Binary number which...

    汇编二进制转换ascii

    Problem statement:

    问题陈述:

    Write an assembly level program in 8085 which converts a binary number into ASCII number.

    在8085中编写一个汇编级程序,该程序将二进制数字转换为ASCII数字。

    Assumptions: Binary number which has to convert in ASCII value is stored at memory location 2050 and output will be displayed at memory location 3050 and 3051.

    假设:必须转换为ASCII值的二进制数存储在存储位置2050中,输出将显示在存储位置3050和3051中。

    Algorithm:

    算法:

    1. Load the content of 2050.

      加载内容2050。

    2. Then separate the LSB of the no. using ANI 0F instruction and MSB of the number by again loading the content of 2050 and rotate it by one bit 4 times to get reverse of the number and then again use ANI 0F to separate the digit.

      然后分离编号的LSB。 通过再次加载2050的内容并将其旋转一位4次以获取数字的反转,然后使用ANI 0F指令和数字的MSB,然后再次使用ANI 0F分隔数字。

    3. If the digit is more than or equal to 0A (in hexadecimal) then add 37 otherwise add 30 to convert into ASCII value (For checking the number is greater than or equal to A then use instruction: CPI 0A and then check the carry flag, if it is 0 then it means digit is greater than or equal to A and if 1 digit is less than A).

      如果该数字大于或等于0A(十六进制),则加37,否则加30转换为ASCII值(要检查数字是否大于或等于A,请使用指令:CPI 0A,然后检查进位标志,如果为0,则表示数字大于或等于A,并且如果1个数字小于A)。

    4. Now Store the ASCII values of both the digits in 3050 and 3051 respectively.

      现在,将两个数字的ASCII值分别存储在3050和3051中。

    Main routine:

    主要例程:

    ADDRESSMNEMONICSCOMMENTS
    2000LDA 2050A
    2003CALL 2500go to address 2500
    2006STA 3050A->[3050]
    2009LDA 2050A
    200CRLCRotate the number by one bit to left without carry
    200DRLCRotate the number by one bit to left without carry
    200ERLCRotate the number by one bit to left without carry
    200FRLCRotate the number by one bit to left without carry
    2010CALL 2500go to address 2500
    2013STA 3051A->[3051]
    2016HLTTerminates the program
    地址 记忆 注释
    2000 LDA 2050 一个
    2003年 致电2500 去地址2500
    2006年 STA 3050 A-> [3050]
    2009年 LDA 2050 一个
    200度 RLC 将数字向左旋转一位而不携带
    200D RLC 将数字向左旋转一位而不携带
    200E RLC 将数字向左旋转一位而不携带
    200楼 RLC 将数字向左旋转一位而不携带
    2010 致电2500 去地址2500
    2013年 STA 3051 A-> [3051]
    2016年 HLT 终止程序

    Sub routine:

    子例程:

    ADDRESSMNEMONICSCOMMENTS
    2500ANI 0FA
    2502CPI 0A[A]-0A
    2504JNC 250A Jump to [250A] if carryflag is 0
    2507ADI 30A
    2509RETReturn to the next instruction from where subroutine address was called in main routine
    250AADI 37A
    250CRETReturn to the next instruction from where subroutine address was called in main routine
    地址 记忆 注释
    2500 ANI 0F 一个
    2502 CPI 0A [A] -0A
    2504 江铃250A 如果进位标志为0,则跳至[250A]
    2507 ADI 30 一个
    2509 RET 返回主程序中调用子程序地址的下一条指令
    250A ADI 37 一个
    250度 RET 返回主程序中调用子程序地址的下一条指令

    Explanation of Main routine:

    主程序说明:

    1. LDA 2050: This instruction will load the number from address 2050 to the accumulator.

      LDA 2050:该指令会将地址2050中的数字加载到累加器。

    2. CALL 2500: This instruction will stop executing the main routine instructions after it and will move to the subroutine address 2500 for performing the subtask and after performing subroutine instructions it will come back to mainroutine and execute the instructions after CALL 2500.

      CALL 2500:此指令将在其后停止执行主例程指令,并将移至子例程地址2500以执行子任务,并且在执行子例程指令后,它将返回主例程并在CALL 2500之后执行指令。

    3. STA 3050: This instruction will store the result (performed in subroutine) of Accumulator to address 3050.

      STA 3050:该指令会将累加器的结果(在子例程中执行)存储到地址3050。

    4. LDA 2050: This instruction will again load the number from address 2050 to the accumulator as the earlier loaded number is changed in accumulator.

      LDA 2050:当在累加器中更改了先前加载的编号时,该指令将再次将地址2050中的编号加载到累加器。

    5. RLC: Rotate the contents of Accumulator by one bit left side without carry.

      RLC:将累加器的内容向左旋转一位而不带进位。

    6. RLC: Rotate the contents of Accumulator by one bit left side without carry.

      RLC:将累加器的内容向左旋转一位而不带进位。

    7. RLC: Rotate the contents of Accumulator by one bit left side without carry.

      RLC:将累加器的内容向左旋转一位而不带进位。

    8. RLC: Rotate the contents of Accumulator by one bit left side without carry.

      RLC:将累加器的内容向左旋转一位而不带进位。

    9. (Applying RLC 4 times it will reverse the contents of the Accumulator)

      (应用RLC 4次将反转累加器的内容)

    10. CALL 2500: This instruction will stop executing the main routine instructions after it and will move to the subroutine address 2500 for performing the subtask and after performing subroutine instructions it will come back to mainroutine and execute the instructions after CALL 2500.

      CALL 2500:此指令将在其后停止执行主例程指令,并将移至子例程地址2500以执行子任务,并且在执行子例程指令后,它将返回主例程并在CALL 2500之后执行指令。

    11. STA 3051: This instruction will store the result (performed in subroutine) of Accumulator to address 3051.

      STA 3051:该指令会将累加器的结果(在子例程中执行)存储到地址3051。

    12. HLT: This instruction will terminate the program.

      HLT:该指令将终止程序。

    Explanation of Sub routine:

    子例程的说明:

    1. ANI 0F: This instruction will separate the LSB of the number present in Accumulator and stores the result back in Accumulator.

      ANI 0F:该指令将分隔累加器中存在的数字的LSB,并将结果存储回累加器中。

    2. CPI 0A: This instruction will compare the content of Accumulator with 0A i.e. [A]-0A.

      CPI 0A:该指令将累加器的内容与0A进行比较,即[A] -0A。

    3. JNC 205A: If the carryflag becomes 0 then it will jump to 205A otherwise move to the next instruction.

      JNC 205A:如果进位标志变为0,则它​​将跳至205A,否则移至下一条指令。

    4. ADI 30: It will add 30 to the content of Accumulator and again store the result back in Accumulator.

      ADI 30:它将向累加器的内容添加30,然后再次将结果存储回累加器。

    5. RET: Now it will move back to the main routine after the next instruction of CALL and start executing instructions of main routine.

      RET:现在,它将在下一条CALL指令后返回主程序,并开始执行主程序的指令。

    6. <="" strong=""> It will add 37 to the content of Accumulator and again store the result back in Accumulator.

      <=“” strong =“”>它将向累加器的内容添加37,然后再次将结果存储回累加器中。

    7. RET: Now it will move back to the main routine after the next instruction of CALL and start executing instructions of main routine.

      RET:现在,它将在下一条CALL指令后返回主程序,并开始执行主程序的指令。

    翻译自: https://www.includehelp.com/embedded-system/convert-a-binary-number-into-ascii-number-in-8085-micropeocessor.aspx

    汇编二进制转换ascii

    展开全文
  • 本代码是供有需要的人下载,请先确认是否需要
  • 要把字符串表示的二进制数转换为ascii值,首先把他转换为十进制数,再用python的内置函数的**chr()**函数将其转换为ascii值。因为ascii是按照7位或者8位bit来表示,所以我们要先将二进制数处理成8bit为一组。 如果...

    要把字符串表示的二进制数转换为ascii值,首先把他转换为十进制数,再用python的内置函数的**chr()**函数将其转换为ascii值。因为ascii是按照7位或者8位bit来表示,所以我们要先将二进制数处理成8bit为一组。
    如果不是字符串表示的二进制数,直接在前面加上0b,显示会转换为十进制数
    所以用字符串表示的二进制数,在字符串前加上‘0b’,再用eval函数求值,eval用于括号中表达式的值,即可得到二进制对应的十进制数。最后调用chr()函数得到对用的ascii值。

    while(flag<length):
        target=res[flag:flag+8]              #分组为8bit一组
        target='0b'+target                   
        result=result+chr(eval(target))      #返回ascii结果
        flag=flag+8
    
    
    展开全文
  • 用java将二进制转换ascii

    千次阅读 2012-11-13 15:13:44
    [size=large]今天玩程序员闯关游戏最后一关,碰到个难题,一大串二进制数要转换成ascii码。 最后想到ASCII码对应的数是十进制数的,可以先把二进制转换成十进制,再强制转换成char类型就好了。 于是用到Integer类...
    [size=large]今天玩程序员闯关游戏最后一关,碰到个难题,一大串二进制数要转换成ascii码。
    最后想到ASCII码对应的数是十进制数的,可以先把二进制转换成十进制,再强制转换成char类型就好了。
    于是用到Integer类中的一个方法:
    static int parseInt(String s, int radix)
    使用第二个参数指定的基数,将字符串参数解析为有符号的整数。
    该方法使用方式:第一个参数应填写以字符串形式表示的二进制数。第二个参数填写“2”,以表示第一个参数是二进制数。该方法返回一个十进制带符号的整数。[/size]
    这里贴出源代码:
    import java.io.*;

    public class ToAscii {

    public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(
    new FileInputStream("binary.txt")));
    String[] ss=null;//用来保存第一行的各项
    for(;;) {
    String str = br.readLine();
    //如果读到文件最后一行之后,则退出循环
    if(str==null)
    break;
    ss=str.split(" ");//每一行的各项用空格分开
    for (String s : ss) {
    int numasc = Integer.parseInt(s, 2);
    System.out.print((char)numasc);//强制转换成char类型,并输出
    }
    }
    br.close();
    }
    }
    展开全文
  • #coding:utf-8 #developed by carrypan! import binascii import optparse def main(): usage="%prog -b <target ascii>" parser=optparse.OptionParser(usage) parser.add_option...
    #coding:utf-8
    
    #developed by carrypan!
    
    import binascii
    import optparse
    
    def main():
        usage="%prog -b <target ascii>"
        parser=optparse.OptionParser(usage)
        parser.add_option('-b',dest='tgtascii',type='string',help='target ascii with quotes(without 0b)')
        (options,args)=parser.parse_args()
        binToAsc(options.tgtascii)
    
    def binToAsc(tgtasc):
        try:
            bin_to_dec=int(tgtasc,2)
            dec_to_asc=chr(bin_to_dec)
            print "the binary:%s ====>>>to dec:%s"%(tgtasc,bin_to_dec)
            print "the binary:%s ====>>>to ascii:%s"%(tgtasc,dec_to_asc)
        except Exception,e:
            print e
    
    if __name__=='__main__':
        main()

    运行截图:

    windows平台运行,二进制不用加引号

     

    转载于:https://www.cnblogs.com/peterpan0707007/p/9554656.html

    展开全文
  • 二进制转十六进制和ASCII码 因为背不下ASCII码表,所以写了一个转换工具。 C语言版本,由于能力有限,方法比较落后(努力提升中) 先上代码: #include <stdio.h> #define N 1000 int main() { char ...
  • python模块介绍- binascii:二进制ASCII 以及其他进制转换 2012-08-01 0个评论 收藏 我要投稿 广告位:2cto_左一 python模块介绍- binascii:二进制ASCII以及其他进制转换 2012-08-01磁针石 #...
  • binascii:二进制ASCII 作用:二进制ASCII互相转换。 Python版本:1.5及以后版本 binascii模块包含很多在二进制ASCII编码的二进制表示转换的方法。通常情况不会直接使用这些功能,而是使用像UU,base64...
  • Python3 进制转换(二进制 十进制 十六进制 ASCII字符串转换) Python3 进制转换 编写Convertor类,用于进制与ASCII字符之间互相转换,便于使用 ASCII码及进制之间转换关系 ASCII码介绍: ASCII 全称为 ( American ...
  • 二进制、十进制、十六进制、ascii等进制数间相互转换
  • 2017/3/12 19.8 binascii 在二进制ASCII之间转换 Python 3.6.1rc1文档 19.8binascii 在二进制ASCII之间转换 该binascii模块包含许多方法在二进制和各种ASCII编码二进制表示之间转换通常情况下 你 不会直接使用...
  • 把16位二进制转换成十进制对应的ASCII码串编程取商法</p>
  • JS中字符问题 二进制/十进制/十六进制及ASCII码之间的转换
  • 进制ASCII码转换

    2021-01-11 09:16:47
    十进制、十六进制、二进制ASCII码相互转换。编译环境VS2008,项目属性字符集为“未设置”。
  • ######################################################...##十进制、二进制、八进制、十六进制的转换 ############################################################################# nNum = int(input("输入十...
  • 20.1 binascii:二进制ASCII 作用:二进制ASCII互相转换。 Python版本:1.5及以后版本  binascii模块包含很多在二进制ASCII编码的二进制表示转换的方法。通常情况不会直接使用这些功能,而是使用像UU...
  • python模块介绍- binascii 二进制ASCII转换 目录 项目简介 1 简介: 2 Uu编码 2 Binhex编码 3 Base64编码 3 QP码 3 CRC校验和 4 二进制转换 4 其他实例 5 项目简介 Python中文库...
  • //将111做为2进制来转换,忽略60(不符合二进制),从左至右只将符合二进制数的进行转换 alert(parseInt(a,16)); //将所有的都进行转换 依照此方法,其实可以转换成任何进制 var a=’1110′; alert(parseInt...
  • BCD码转换成二进制ASCII

    万次阅读 2015-01-17 16:32:10
    BCD码转换成二进制ASCII码;用BCD码表示:十位上的十进制数为 2 == BCD码表示为 0010;个位上的十进制数9 === BCD码表示为 1001;所以总的来说 十进制数 29 用BCD码表示为:0010 1001;转换过程:把BCD码 0010(十...
  • Java将二进制转为ascii

    千次阅读 2016-11-11 20:23:49
    txt文件中每八个二进制(0或1)为一组,每组之间用" "分隔,每组二进制都要成一个ascii码。 代码如下: public class ToAscii { public static void main(String[] args) throws IOException { ...
  • 二进制十六进制与ASCII码表

    千次阅读 2018-09-14 18:26:32
    二进制与十六进制 计算机的数据存储 计算机的数据表示 字符 二进制与十六进制 二进制 ------&gt; 每位只能用0,1表示 二进制到十进制的转换 ------&gt; 110 = 1*2^2 + 1*2^1 + 0*2^0 = 6 十六...
  • ftp二进制ascii传输方式区别

    千次阅读 2019-01-26 21:17:37
    ftp二进制ascii传输方式区别  FTP可用多种格式传输文件,通常由系统决定,大多数系统(包括UNIX系统)只有两种模式:文本模式和二进制模式。文本传输器使用ASCII字符,并由回车键和换行符分开,而二进制不用转换...
  • 同时支持二进制ASCII码的文件格式的stl文件读取、显示软件,同时支持文件旋转、缩放、分层等。VC++开发,小巧、高校。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,052
精华内容 1,220
关键字:

二进制转ascii