精华内容
下载资源
问答
  • 十六进制转十进制 DATAS SEGMENT dbuf dw 3039H;16进制数3039H为10进制数12345 dval db 5 dup (?);存放转换后的数据 dlen =$-dbuf DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES ...

    十六进制转成十进制

    DATAS SEGMENT
        dbuf dw 3039H;16进制数3039H为10进制数12345
        dval db 5 dup (?);存放转换后的数据
        dlen =$-dbuf
    DATAS ENDS
    
    STACKS SEGMENT
        ;此处输入堆栈段代码
    STACKS ENDS
    
    CODES SEGMENT
        ASSUME CS:CODES,DS:DATAS,SS:STACKS
    START:
        MOV AX,DATAS
        MOV DS,AX
        ;此处输入代码段代码
        mov si,offset dbuf;源数据地址
        mov dx,[si]
        mov si,offset dlen;目标数据地址
        
        l1:
        dec si
        mov ax,dx
        mov dx,0
        mov cx,10;除数10
        div cx;商送AX,余数送DX
        xchg ax,dx
        mov [si],al;存入目标地址
        cmp dx,0000H
        jne l1;判断转换结束否,未结束则转l1
        
        l2:
        cmp si,offset dval;与目标地址的首址比较
        jz l3;等于首地址则转l3,否则将剩余地址
        dec si
        mov al,00H
        mov [si],al
        jmp l2
        
        l3: 
        mov dx,[si]
        add dl,48
        mov ah,2
        int 21h
        
        mov dx,[si+1]
        add dl,48
        mov ah,2
        int 21h  
        
        mov dx,[si+2]
        add dl,48
        mov ah,2
        int 21h 
        
        mov dx,[si+3]
        add dl,48
        mov ah,2
        int 21h   
        
        mov dx,[si+4]
        add dl,48
        mov ah,2
        int 21h  
        MOV AH,4CH
        INT 21H
    CODES ENDS
        END START
    
    
    

    十进制转十六进制

    DATAS SEGMENT
        ;此处输入数据段代码 
        nums db 3,2,7,6,7
        numo dw ?
         
    DATAS ENDS
    
    STACKS SEGMENT
        ;此处输入堆栈段代码
    STACKS ENDS
    
    CODES SEGMENT
        ASSUME CS:CODES,DS:DATAS,SS:STACKS
    START:
        MOV AX,DATAS
        MOV DS,AX
        ;此处输入代码段代码
        mov bx,10
        mov cx,0
        
        again:
        mov ah,1
        int 21h
        
        cmp al,'0'
        jb over
        cmp al,'9'
        ja over
        sub al,48
        mov ah,0
        push ax
        mov ax,cx
        imul bx 
        pop dx
        
        add ax,dx
        mov cx,ax
        jmp again
        
        over:
        mov numo,cx 
        
        mov ax,cx
        mov bx,ax
        mov ch,0
        
        l0:
        cmp ch,4
        je over2
        
        mov cl,4
        rol bx,cl
        mov dx,bx
        
        and dx,0fH
        cmp dx,10
        jb l2
        
        add dx,55 
        mov ah,2
        int 21h
        add ch,1
        jmp l0
        
        l2:
        add dx,48;是数字
        mov ah,2
        int 21h
        add ch,1
        jmp l0
        
        over2:
        
        MOV AH,4CH
        INT 21H
    CODES ENDS
        END START
    
    
    展开全文
  • 十六进制转十进制

    2013-02-20 14:13:10
    ATMEGA AVR 汇编 十六进制转十进制
  • 汇编语言 32位 十六进制十进制转换 窗口显示
  • 汇编实现十进制转十六进制输出,输入一个十进制,输出一个十六进制
  • 十六进制转十进制和BCD算法(汇编)是应wahllfok的要求上传的,wahllfok原本需要BCD转十六进制的算法,我最近有点忙只有这个逆算法(几年前写的),希望能给你借鉴。有时间我再写一个。 这个算法分两个子程序,一个...
  • MIPS汇编语言十进制转十六进制,在Mars4.5运行测试成功
  • 汇编语言各进制(二进制,八进制,十进制十六进制)之间的转换,一网打尽,包括源码,word文档和PDF文档
  • 该代码实现十六进制十进制数,并在屏幕上显示,是王爽老师汇编语言中实验的进一步扩展。如需详细编写过程请留言,请指教!
  • 本程序可实现十进制转换成二进制和十六进制本程序可实现十进制转换成二进制和十六进制本程序可实现十进制转换成二进制和十六进制
  • 汇编程序:十六进制转十进制

    千次阅读 2016-12-12 09:34:46
    asume cs:code code segmEnt start: mov ax,47eh MOV CX, 0 mov bx,10 disp1: mov dx,0 div bx PUSH DX inc cx or ax,ax jne disp1 disp2: mov ah,2
    asume cs:code
    code   segmEnt
    start: mov ax,47eh
         MOV  CX, 0 
           mov bx,10
    disp1: mov dx,0
           div bx
          PUSH  DX 
           inc cx
           or ax,ax
           jne disp1
    disp2: 
           mov ah,2
         POP  DX 
         ADD  DL, 30H   --应该加上一行
           int 21h
           loop disp2
          MOV  AH, 4CH 
          INT   21H 
    code  ends
         END  START  

    代码出处:
    https://zhidao.baidu.com/question/617730971000307732.html?qbl=relate_question_0&word=%BB%E3%B1%E0%CA%AE%C1%F9%BD%F8%D6%C6%D7%AA%CA%AE%BD%F8%D6%C6

    展开全文
  • 汇编语言编写的十进制转换为十六进制的代码。
  • 汇编语言实现十进制数转换成十六进制数的源代码
  • 输入一位十六进制数,输出其十进制表示比如输入:f则输出:15(这里使用小写f 不对大写F进行判断)方法一(利用AAA)stack segment db 10 dup(?) stack ends data segment string db 'please input a num: $' result...

    a3ada670acac10e6feee1fbab98eb4dd.png

    输入一位十六进制数,输出其十进制表示

    比如输入:f
    则输出:15
    (这里使用小写f 不对大写F进行判断)

    方法一(利用AAA)

    stack segment
    db 10 dup(?)
    stack ends
    
    data segment
    string db 'please input a num: $'
    result db 0ah,0dh,'result is : $'
    data ends
    
    code segment
    assume cs:code,ds:data,ss:stack
    start:
    mov ax,data
    mov ds,ax
    
    lea dx,string
    mov ah,09h
    int 21h
    
    mov ah,01h
    int 21h
    
    sub al,30h
    cmp al,10
    jb result_1
    sub al,27h
    xor ah,ah
    AAA
    push ax
    push ax
    lea dx,result
    mov ah,09h
    int 21h
    
    pop ax
    
    add ah,30h
    mov dl,ah
    mov ah,02h
    int 21h
    pop ax
    add al,30h
    mov dl,al
    mov ah,02h
    int 21h
    jmp jieshu
    
    result_1:
    lea dx,result
    mov ah,09h
    int 21h
    
    add al,30h
    mov dl,al
    mov ah,02h
    int 21h
    jmp jieshu
    
    jieshu:
    mov ax,4c00h
    int 21h
    
    code ends
    end start

    结果

    8b046aa1512363ab3dca2dfb1a189bef.png

    方法二:(利用 除以进制10)

    stack segment
    stack ends
    
    data segment
    string_1 db 'please input a num: $'
    string_2 db 0ah,0dh,'the result is : $'
    result db 0,0
    data ends
    
    code segment
    assume cs:code,ds:data,ss:stack
    start:
    mov ax,data
    mov ds,ax
    
    lea dx,string_1
    mov ah,09h
    int 21h
    
    mov ah,01h
    int 21h
    
    sub al,30h
    mov cx,2
    mov si,offset result+1
    mov ah,0
    mov bl,10
    cmp al,10
    jb shuzi
    sub al,27h
    
    
    
    shuzi:
    div bl
    mov [si],ah
    dec si
    mov ah,0
    loop shuzi
    
    mov si,offset result
    mov cx,2
    
    lea dx,string_2
    mov ah,09h
    int 21h
    
    shuchu:
    mov dl,[si]
    add dl,30h
    mov ah,02h
    int 21h
    inc si
    loop shuchu
    
    mov ax,4c00h
    int 21h
    
    
    
    code ends
    end start

    总结

    • 这里有个坑,使用dos的2号功能后,输出字符的ASCII值会被送入al中。太坑了。
    • 一定记得对ax进行保护,这里保护了两次!

    2d234d661823b9577468602404409512.png
    展开全文
  • 汇编实现十六进制数向十进制数的转换 一、实现功能 实现一位十六进制数向十进制数的转换。 二、设计分析       汇编语言中,字符在机器中都是以ascii码的二进制格式存储,但是汇编语言写的时候常用...

    用汇编实现十六进制数向十进制数的转换

    一、实现功能

    实现一位十六进制数向十进制数的转换。

    二、设计分析

          汇编语言中,字符在机器中都是以ascii码的二进制格式存储,但是汇编语言写的时候常用十六进制,因此需要好好看看ascii码的十六进制表。

          特别是进制转换一定要注意,机器中存储的是数的二进制数本身,而我们输入输出的是数的ascii码的值,因此注意对寄存器中数的加减操作

    1. 实现十六进制数向十进制数的转换,先输入一位16进制数,判断输入字符的ascii码在30H-39H(0-9)之间,还是在41H-46H(A-F)之间,或者是在61H-66H(a-f)之间。如果是第一种情况则SUB DL,30H,如果是第二种情况则SUB DL,37H,如果是第三种情况则SUB DL,57H。

    2. 接下来需要将DL中的二进制数转换为十进制数输出。这里我选择将DX除以10,商在AL中,用来表示十位数,余数在AH中,用来表示个位数,如果商是0,则不用输出;如果商是1,则ADD AH,30H,输出AH。余数ADD AL,30H,输出AL。即可得到16进制对应的十进制数。

    3. 注意输出的字符的值是不等于机器中存放的二进制的值,因此需要进行加减法)最后输出对应的16进制的ascii码的值。

    4. 十六进制数向十进制数的转换流程图:
      在这里插入图片描述

    三、源代码

    DATA SEGMENT
    	TIP DB 'INPUT THE NUMBER: ','$'
    	TIP1 DB '  <=>  ','$'
    DATA ENDS
    
    CODE SEGMENT
    	ASSUME CS:CODE,DS:DATA
    START:
    	MOV AX,DATA
    	MOV DS,AX
    	LEA DX,TIP
    	MOV AH,09H
    	INT 21H
    
    INPUT:
    	MOV AH,1
    	INT 21H
    	CMP AL,30H
    	JB EXIT
    	CMP AL,39H
    	JA COMPER1
    	JMP CHANGE1    ;0~9之间
    COMPER1:
    	CMP AL,41H
    	JB EXIT
    	CMP AL,46H
    	JA COMPER2
    	JMP CHANGE2    ;在A-F之间
    COMPER2:
    	CMP AL,61H
    	JB EXIT
    	CMP AL,66H
    	JA EXIT
    	JMP CHANGE3    ;在a~f之间
    
    CHANGE1:
    	SUB AL,30H
    	JMP ENT
    CHANGE2:
    	SUB AL,37H
    	JMP ENT
    CHANGE3: 
    	SUB AL,57H
    	JMP ENT
    ENT:
    	MOV BL,AL
    	LEA DX,TIP1
    	MOV AH,09H
    	INT 21H
    	MOV AL,BL
    	MOV AH,0
    	MOV BL,10
    	DIV BL
    	MOV DH,AH
    	CMP AL,0
    	JE ONE
    	MOV DL,AL      ;十位数是1
    	ADD DL,30H
    	MOV AH,02H
    	INT 21H
    ONE:	                        ;十位数是0
    	MOV DL,DH
    	ADD DL,30H
    	MOV AH,02H
    	INT 21H
    EXIT:
    	MOV AH,4CH
    	INT 21H
    CODE ENDS
    END START
    
    展开全文
  • 能够转换最多32位二进制数,用两个寄存器来实现数值存储。不同于一般有限位数的进制转换。
  • 十进制转十六进制

    2013-02-20 14:17:56
    ATMega 汇编 十进制转十六进制 输入ALG_DATA,输出HEX_DATA
  • 程序分为两个部分,首先是处理我们的输入,以及通过除法计算十进制数的过程。 data SEGMENT USE16 data ENDS stack SEGMENT USE16 db 32 dup(?) stack ENDS code SEGMENT USE16 ASSUME CS:CODE, DS:DATA, SS:...
  • 51单片机(汇编语言)实现十进制转十六进制任务描述任务原理方案Ⅰ思路代码运行结果算法补充循环四位移位带进位的乘法2bytes + 1byte方案Ⅱ 任务描述 DEC0 DEC1 DEC2 存放"十进制"数 eg:03 35 96 HEX0 HEX1存放十六...
  • 源程序(ibm-pc 汇编课本中): decibin proc near mov bx,0  newchar: mov ah,1 int 21h sub al,30h jl exit cmp al,9d jg exit cbw xchg ax,bx  mov cx,10d mul cx xchg...
  • 十进制的数据转换为十六进制的数据 完成数据之间的转换,达到各种进制之间的转化。
  • 十进制转换十六进制文件类型:.asm有充分说名
  • 汇编语言将十进制数据转换成十六进制数。要求从键盘上输入一个十进制数,然后以十六进制数输出,用子程序实现
  • 二进制(0、1)(B) 十进制(0、1、2、3、4、5、6、7、8、9)(D) 十六进制(0、1、2、3、4、5、6、7、8、... 二进制转十进制  方法: 数值×2^位置 全部加起来 例如: 数值 1 0 1 1  位置 3 2 1 0  1×2^3 + 0×2^2 + 1×2
  • 1)实现十进制与二进制之间的相互转换; (2) 实现十进制十六进制之间的相互转换; (3) 实现二进制与十六进制之间的相互转换; (4) 能进行不同进制转换的选择。
  • 用文本文档编写的汇编语言程序 十进制转换为十六进制 在dsp上实现
  • P20-4.3十进制表示 推理出一种新的计算机方式...P23-4.6-十进制转换成十六进制 P24-4.7-十进制快速转换成十六进制 93-》80+13 80-》5* 16 13-》D 5D 不能够超过255 P25-4.8-十六进制和二进制之间快速互相转换(重要) 9

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 277
精华内容 110
关键字:

汇编十六进制转十进制