汇编:将四位十进制数转化为十六进制数

发布者:Dingsir1902最新更新时间:2015-05-26 来源: 51hei关键字:汇编  十进制数  十六进制数 手机看文章 扫描二维码
随时随地手机看文章
这是一个把四位十进制数转化为十六进制数的汇编语言程序


data segment
 tital1 db 'Please input shi jin zi shu (example 1234): ','$'
 tital2 db 'It is transpranted into shi liu jin zi shu :','$'
 tital3 db 'Do you want to have a try again (yes "y",no "n"): ','$'
 tital4 db 'Welcome to use this program It is made by WQ 2012/5/17','$'
 kongzi db  0dh,0ah,'$'
 jichun dw  0000h
 yushu  db  5 dup(00)
 duandian db 'jianche dian',0dh,0ah,'$'
 data ends
code segment
    assume cs:code,ds:data
start:
    mov ax,data
    mov ds,ax 
   
retry:
    lea dx,kongzi  ;换行回车
    mov ah,09h
    int 21h
   
    lea dx,tital1  ;输出抬头1please input 1234
    mov ah,09h
    int 21h
   
    mov al,0     ;初始化al
   
    mov ah,01h    ;输入并回显
    int 21h
   
    mov bh,al    ;千位放在bh中保存
   
   
    mov ah,01h   
    int 21h   
    mov bl,al    ;百位放在bl中
   
    mov ah,01h
    int 21h
    mov ch,al    ;十位放在ch中
      
   
    mov ah,01h
    int 21h
    mov cl,al   ;个位放在cl中
    ;bh,bl,ch,cl 都没问题
   
   
    lea dx,kongzi  ;换行回车
    mov ah,09h
    int 21h
   
    lea dx,tital2  ;输出抬头2
    mov ah,09h
    int 21h  
   
    mov ax,0    ;初始化ax  
  
  
    sub bh,30h  ;把ascII码转化为十进制数
    mov al,bh   ;输入的第一个数(千位数)
    ;over    
  
    mov si,0ah  ;10权值    
    mul si     ;ax被乘1000  over   
    mul si   
    mul si
    mov jichun,ax    ;over 
   [page]
   
    mov ax,0         
    sub bl,30h
    mov al,bl    ;ax被乘100
    mul si    
    mul si   
    add jichun,ax
   
    mov ax,0
    sub ch,30h
    mov al,ch
    mul si          ;ax乘10
    add jichun,ax
    mov ax,0
    sub cl,30h
    mov al,cl
    add jichun,ax   ;彻底转化为十进制数
       
    mov ax,jichun ; ax中为9999转化为16进制数270f
    ;over;;;;;;;;;;;;;;;;;;;;;;;;  
  
    mov dx,0;初始化
    mov di,0;指针为0  
    mov bx,0010h 
quyu:   
    div bx     ;默认 ax  
   
    mov yushu[di],dl
    inc di  
    mov dx,0
    cmp ax,10h
    jae quyu       
    mov yushu[di],al   
    inc di
    mov cx,di
    dec di
 shuchu:    
     mov dl,yushu[di]
     dec di       
     cmp dl,0ah   
     jnae l2
     add dl,37h   
     mov ah,02h   
     int 21h
     jmp jiedian
l2:  add dl,30h 
     mov ah,02h
     int 21h    
jiedian:
    loop  shuchu
tishi: 
    lea dx,kongzi;控制换行回车
    mov ah,09h
    int 21h
   lea dx,tital3;输出抬头3
   mov ah,09h
    int 21h
    mov ah,01h   ;判断是否继续
   int 21h
    cmp al,'y'
    je retry
   
   lea dx,kongzi;控制换行回车
   mov ah,09h
   int 21h
   
    lea dx,tital4
    mov ah,09h
   int 21h

over:               ;结束
    mov ah,4ch
    int 21h
    code ends
end start

关键字:汇编  十进制数  十六进制数 引用地址:汇编:将四位十进制数转化为十六进制数

上一篇:汇编:输入一位十六进制数将其转化为2进制数
下一篇:XS128单片机实验:B口灯交替闪亮

推荐阅读最新更新时间:2024-03-16 14:03

利用汇编语言实现DES加密算法
DES算法是一种数据加密算法。自从1977年公布以来,一直是国际上的商用保密通信和计算机通信的最常用的加密标准。DES算法的实现一般用高级语言。 关键词:加密算法 DES 汇编语言 目前在金融界及非金融界的保密通信中,越来越多地用到了DES算法。DES(Data Encryption Standard)即数据加密算法,是IBM公司于 1977年研究成功并公开发表的。随着我国三金工程尤其是金卡工程的启动,DES算法在POS、ATM、磁卡及智能卡(IC卡)中被广泛应用,以此来实现关键数据的保密。如信用卡持卡人的PIN的加密传输、IC卡与POS间的双向认证、金融交易中的密码键盘等,均用到DES算法。由于密码键盘不可能使用高级语言,所以用
[工业控制]
汇编语言实现BCH解码校验算法
摘要:介绍数据传输中BCH解码校验用汇编语言实现的算法。算法包含BCH码的差错检验、差错位查找和差错纠正,同时列出相关主要子程序清单并予说明。 关键词:BCH解码 校验算法 汇编语言 数据传输通信中,常常因传输差错造成误码错码,尤其在无线通信中,空中的突发或随机干扰噪声会造成编码差错。为了提高传输的正确率,往往采用一些校验方法,以检验纠正传输差错。通信中校验的方法很多,其中的BCH编码有其独特的优点:不仅可以检纠突发差错,还能检纠随机差错,被广泛地采用在微机级的通信中。但对更低层的单片机级的数据传输通信纠错,往往采用奇偶校验等简单的校验方法。BCH校验因其算法复杂,尤其是动态实时的无线通信中,单片机的通信往往无法采用BCH解
[应用]
简单实现 汇编及C语言混合 keil9.0工程源码
系统设计核心意图:使用定时器,在延时过程中运行其它的任务。 工程源码:链接: https://pan.baidu.com/s/1LEV9qYmUn6SdemGz7TH6dw 提取码: iua5 切换任务并记录位置,保证在时间到后能切换回来。(在任务中切换出去,在定时器中切换回来。)(时间片轮转) 可以支持同时8个任务。 工程就两个文件:汇编操作系统rtos_c.asm 及 C语言示例 Test.c Test.c /* 开发工具:keil c51 V9.0 及注册机 芯片:标准C8051 晶振:12M 源码任务数:加主任务共4个 2019-05-07 */ //----------------------
[单片机]
简单实现 <font color='red'>汇编</font>及C语言混合 keil9.0工程源码
用单片机计数脉冲的个数-数码管显示汇编程序
位数码管用2个573接到p0口,位选p2 段选P0口:点这里 采用定时器来记录脉冲 并用数码管输出 以下是源代码: ;******** 用数码管来计数脉冲的个数 ********************************** ORG 0000H JMP MAIN ORG 000BH JMP TT0 ORG 001BH JMP TT1 MOV 23H,#00H MOV 22H,#00H MOV 21H,#00H MOV 24H,#10 CALL IIP CALL IIP CALL IIP
[单片机]
ARM中的汇编和机器码
我们以S3C2440的GPIO汇编代码为例: .text .global _start _start: //把0x100写到地址0x56000050上,配置gpf4为输出引脚, ldr r1, =0x56000050 ldr r0,=0x100 str r0, //把0x00写到地址0x56000054上,设置gpf4输出低电平, ldr r1, =0x56000054 ldr r0,=0x00 str r0, //死循环 halt: b halt 在上面的代码中,我们使用了伪指令ldr把值存放到r0,r1寄存器里面,所谓伪指令就是假的指令,它并不是真正的ARM指令,我们通过
[单片机]
ARM中的<font color='red'>汇编</font>和机器码
汇编语言 ORG伪指令
ORG伪指令给它下面一条语句指定起始偏移地址。通常,段定义语句 segment 指出了段的起点,偏移地址为0,段内各个语句或数据的地址,将会由段起始地址开始依次后推。当要对某条指令或某些数据规定特殊的存放地址时,可用ORG伪指令来实现,ORG语句可放在程序的任何位置。 assume cs:code, ds:data data segment ORG 1500H Test1 DB 12H, 34H ;Test1变量的偏移地址为1500H ORG 3000H Test2 DW 3040H, 2830H ;Test2变量的偏移地址为3000H data ends code segment
[单片机]
<font color='red'>汇编</font>语言 ORG伪指令
GNU ARM汇编--(十六)bootloader与kernel之间
在 《GNU ARM汇编--(十五)linux下的printascii》 中已经初步分析了自己写的bootloader在引导kernel时候出现的commandline在bootloader和kernel之间传递的问题,今天终于解决了,并对参数传递有一些研究: 传递的参数为: view plain copy params- u1.s.page_size = LINUX_PAGE_SIZE; params- u1.s.nr_pages = (DRAM_SIZE LINUX_PAGE_SHIFT); params- commandline 设定为 noinitrd root
[单片机]
时钟,秒表,流水灯的单片机汇编程序
//HJSMSY-V1.0 单片机 开发板测试程序 //--------------------------------------------- // 电脑钟 //--------------------------------------------- //=======主函数================================== ORG 0000H LJMP MAIN ORG 000BH LJMP T00 // ORG 001BH // LJMP T11 ORG 0030H //=======程序初始化============================= MAI
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved