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

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


 
data segment
 tital1 db 'Please input shi jin zi shu (example 13): ','$'
 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,'$'
 
 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  ;输出抬头1
    mov ah,09h
    int 21h
   
    mov al,0     ;初始化al
   
    mov ah,01h   ;输入并回显
    int 21h
   
    mov bh,al    ;放在bx中保存
   
    mov ah,01h   
    int 21h   
    mov bl,al 
   
    lea dx,kongzi  ;换行回车
    mov ah,09h
    int 21h
    lea dx,tital2  ;输出抬头2
    mov ah,09h
    int 21h
  
   [page]
    mov ax,0    ;初始化ax
    sub bh,30h  ;把ascII码转化为十进制数
    mov al,bh   ;输入的第一个数(十位数)
    mov cl,0ah  
    mul cl      ;al被乘十
    sub bl,30h  
    add al,bl   ;彻底转化为十进制数
    mov dl,al   ;dl 中为十进制数 
   
   
    mov bl,10h  ;16
    mov cl,al  
    mov dl,0  
l1:cmp cl,bl    ;和十六比较看看是否比十六大
   jnae l2
   inc dl       ;看该数里面有几个十六
   sub cl,bl
   jmp l1
l2: add dl,30h   ;比十六小的话第一位数应该为0,
                 ;因为99化成十六进制数为63h第二位不会大于六
    mov ah,02h
    int 21h    
   
   
    cmp cl,0ah   ;cl和十进行比较
    jae l3
    mov dl,cl
    add dl,30h   ;十以内的数加30
    mov ah,02h
    int 21h  
    jmp tishi
    
l3: mov dl,cl    ;比十大的要变成字母
    add dl,37h   ;十进制二位数和十六进制abcdef差37h
    mov ah,02h
    int 21h
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

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

上一篇:汇编:统计输入字符串内的数字个数(最多三位数0—256)
下一篇:汇编程序:统计一个字符串里数字的个数(初级版)

推荐阅读最新更新时间: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