当前位置: 首页 > news >正文

汇编经典程序——将一个字节数据以十六进制形式显示

法一:

由于0-9的ASCII码=实际值+30h,A-Z的ASCII码=实际值+37h,故直接加对应的数即可

;该程序将一个字节数据以十六进制形式显示(直接加对应数值).model small
.stack
.data
hex db 4bh.code
.startup;显示高位mov al,hexmov cl,4shr al,clmov dl,al call disp;显示低位mov dl,hexand dl,0fh ;将高位置0call disp.exit 0;显示字符的子程序
disp PROCcmp dl,9jbe next ;如果小于等于9,就直接加30h,如果是字母,就需要另外加7
zimu:add dl,7h
next:add dl,30h;显示mov ah,02hint 21hret
disp ENDP   end

法二:

查表的方式来实现

;该程序将一个字节数据以十六进制形式显示(以查表方法).model small
.stack
.data
hex db 4bh
ascii db 30h,31h,32h,33h,34h,35h,36h,37h,38h,39hdb 41h,42h,43h,44h,45h,46h.code
.startupmov bx,offset ascii ;取得表的偏移地址,为换码做准备;显示高位mov al,hexmov cl,4sar al,clxlat      ;al<--ds:[bx+al]mov dl,almov ah,02hint 21h;显示低位mov al,hexand al,0fh ;高位为0xlat mov dl,almov ah,02hint 21h.exit 0
end

参考资料:钱晓解《汇编语言程序设计》第4章例4.1

http://www.lryc.cn/news/192829.html

相关文章:

  • Remix 开发小技巧(五)
  • hive抽取mysql里的表,如果mysql表没有时间字段如何做增量抽取数据
  • 20和遍历以及迭代器有关的一些东西
  • 前端工程化(editorconfig+ESLint+Prettier+StyleLint+Husky、Commitlint)
  • UI自动化测试:Selenium+PO模式+Pytest+Allure整合
  • 【排序算法】详解冒泡排序及其多种优化稳定性分析
  • 使用 Go 和 Wails 构建跨平台桌面应用程序
  • 花2个月时间学习,面华为测开岗要30k,面试官竟说:你不是在搞笑。。。
  • 【Python学习笔记】字符串
  • 【AUTOSAR中断管理】TC3XX中断系统介绍
  • Unity实现摄像机向屏幕中间发射射线射击物体
  • 测试时数据增广(TTA)与mmdetection3d中的实现
  • 深入探索BP神经网络【简单原理、实际应用和Python示例】
  • 【LVGL】SquareLine Studio入门基础操作
  • 【单片机】19-TFT彩屏
  • 高质量!推荐一些免费自学网站
  • Linux之open/close/read/write/lseek记录
  • 3D调研-摄像头
  • 光耦合器继电器与传统继电器:哪种最适合您的项目?
  • 分享关于职场心态
  • OK3568 UBUNTU 安装使用I2C-TOOLS
  • mysql面试题53:一个6亿的表a,一个3亿的表b,通过外间tid关联,你如何最快的查询出满足条件的第50000到第50200中的这200条数据记录
  • Docker服务更新与发现
  • 【2023集创赛】安谋科技杯二等奖作品: 智能体感游戏机
  • 如何使用前端包管理器(如npm、Yarn)?
  • Codeforces Round 903 (Div. 3) C(矩形旋转之后对应的坐标)
  • 月薪过万的Java面试
  • html进阶语法
  • 博客系统(java,MySQL,HTML)
  • Android Studio SDKGradleJDK等工具的正确使用