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

进制转换3例

1、 键盘输入N个十六进制数据,每次一位(0F),将其累加,和存放到SUM单元中;若输入非十六进制数则结束;再将SUM单元的值用十六进制数据换行输出。


data segment
num db ?
adtab dw addr1, addr2, addr4, addr8
tb1 db 'I am student2$'
tb2 db 'You are students3$'
tb4 db 'You are students5$'
tb8 db 'You are students9$'
next db 0dh,0ah,'$'
data ends

code segment
assume cs:code, ds:data
start:
mov ax,data
mov ds, ax

mov ah, 01h
int 21h
sub al, 30h
mov num,al
lea dx, next
mov ah, 09h
int 21h

mov al, num
lea bx, adtab
lop: shr ax, 1
jnc nxt
jmp word ptr [bx]
nxt: add bx, type adtab
jmp lop

addr1: lea dx,tb1
mov ah,09h
int 21h
jmp exit

addr2: lea dx,tb2
mov ah,09h
int 21h
jmp exit

addr4: lea dx,tb4
mov ah,09h
int 21h
jmp exit

addr8: lea dx,tb8
mov ah,09h
int 21h

exit: mov ah,4ch
int 21h
code ends
end start



2、 键盘输入N个十六进制数据,每次一位(0F),将其累加,和存放到SUM单元中;若输入非十六进制数则结束;再将SUM单元的值用二进制数据换行输出。
data segment
num db ?
table db?,?,?,?
next db 0dh,0ah,'$'
count dw 0
data ends

code segment
assume cs:code, ds:data
start:
mov ax,data
mov ds, ax

lop: mov ah, 01h
int 21h
cmp al, 0dh
jz outpush0

cmp al, '0'
jb other
cmp al, '9'
ja other

sub al, 30h
neg al
add al, 30h
mov si, count
mov table[si], al
mov cx, count
add cx, 1
mov count, cx
jmp lop
other:
mov si, count
mov table[si], al
mov cx, count
add cx, 1
mov count, cx
jmp lop

outpush0:
lea dx, next
mov ah, 9
int 21h

mov cx, 0
mov count, cx
mov bx, 4
outpush:
cmp bx, count
jz exit
mov si, count
mov dl, table[si]
mov ah, 2
int 21h
mov cx, count
add cx, 1
mov count, cx
jmp outpush

exit: mov ah,4ch
int 21h
code ends
end start


3、 键盘输入4个十六进制数据,将其对应的二进制数输出。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

data segment
number0 db ?
number1 db ?
tb1 db 0dh,0ah,'jan',0dh,0ah,'$'
tb2 db 0dh,0ah,'fab',0dh,0ah,'$'
tb3 db 0dh,0ah,'mar',0dh,0ah,'$'
tb4 db 0dh,0ah,'apr',0dh,0ah,'$'
tb5 db 0dh,0ah,'may',0dh,0ah,'$'
tb6 db 0dh,0ah,'jun',0dh,0ah,'$'
tb7 db 0dh,0ah,'jly',0dh,0ah,'$'
tb8 db 0dh,0ah,'aug',0dh,0ah,'$'
tb9 db 0dh,0ah,'sep',0dh,0ah,'$'
tb10 db 0dh,0ah,'oct',0dh,0ah,'$'
tb11 db 0dh,0ah,'nov',0dh,0ah,'$'
tb12 db 0dh,0ah,'dec',0dh,0ah,'$'
next db 0dh,0ah,'$'
msgdb'Input a function number(1~12),end with "ENTER":','$'
ErrMsgdb0dh,0ah,'Invalid function number.', 0dh, 0ah,'$'
AddrTbl dw Func0,Func1,Func2,Func3,Func4,Func5,Func6,Func7,Func8,Func9,Func10,Func11
data ends
code segment
assume cs:code, ds:data
start: mov ax,data
mov ds,ax

lea dx, msg
mov ah, 9
int 21h

mov ah, 1
int 21h
mov number0, al
mov ah, 1
int 21h
mov number1, al
mov al, number1
cmp al, 0dh
jz equ1
add al, 10
jmp equal
equ1:
mov al, number0
equal:
cmp al, '0'
jc Error
cmp al, '<'
ja Error
sub al, 30h
mov ah, 0

mov bx, ax
shl ax, 1
mov bx, ax
jmp AddrTbl[bx]
Func0:
lea dx, tb1
jmp Output
Func1:
lea dx, tb2
jmp Output
Func2:
lea dx, tb3
jmp Output
Func3:
lea dx, tb4
jmp Output
Func4:
lea dx, tb5
jmp Output
Func5:
lea dx, tb6
jmp Output
Func6:
lea dx, tb7
jmp Output
Func7:
lea dx, tb8
jmp Output
Func8:
lea dx, tb9
jmp Output
Func9:
lea dx, tb10
jmp Output
Func10:
lea dx, tb11
jmp Output
Func11:
lea dx, tb12
jmp Output
Error:
lea dx, ErrMsg
jmp Output
Output:
mov ah, 9
int 21h
mov ah,4ch
int 21h
code ends
end start

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 重启计算机一直转圈圈,W10重新启动,一直转圈圈
  • 计算机显示器外壳怎么防水,电脑显示器外壳怎么拆开
  • 一些常见的GUI对应的程序名称整理
  • 远程带数字证书连接服务器,设置通过数字证书方式登录远程连接Linux服务器,禁止root账户远程密码方式远程连接服务器...
  • 使用Oracle Wrap工具加密你的代码
  • css初始化代码放在哪,CSS初始化的代码怎么写?
  • 服务器统一改显示器刷新率,游戏小白有了144Hz显示器真的就可以吊打60Hz吗?
  • 饮恨(一)
  • 服务器虚拟化二层隔离,【必懂】服务器虚拟化 - 从感性上认识VXLAN(一)
  • huffman树和huffman编码
  • cefsharp获取ajax返回值,使用CEfSharp之旅(6)攔截網絡請求 截取response返回
  • AES (http://www.cryptosystem.net/aes/)
  • 苹果备份显示服务器失败是怎么回事,iPhone显示备份失败应该如何解决
  • 股票服务器系统,股票系统_ 《梦幻西游》电脑版官方网站 - 网易西游题材扛鼎之作...
  • 饮恨(二)
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 【Linux系统编程】快速查找errno错误码信息
  • Git学习与使用心得(1)—— 初始化
  • Just for fun——迅速写完快速排序
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • Octave 入门
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • Swoft 源码剖析 - 代码自动更新机制
  • Tornado学习笔记(1)
  • 高程读书笔记 第六章 面向对象程序设计
  • 后端_MYSQL
  • 普通函数和构造函数的区别
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 如何解决微信端直接跳WAP端
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 探索 JS 中的模块化
  • 字符串匹配基础上
  • 阿里云服务器如何修改远程端口?
  • 从如何停掉 Promise 链说起
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​​​​​​​开发面试“八股文”:助力还是阻力?
  • "无招胜有招"nbsp;史上最全的互…
  • #NOIP 2014# day.1 T2 联合权值
  • #ubuntu# #git# repository git config --global --add safe.directory
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (27)4.8 习题课
  • (libusb) usb口自动刷新
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (三十五)大数据实战——Superset可视化平台搭建
  • (未解决)macOS matplotlib 中文是方框
  • (转)重识new
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .NET开发不可不知、不可不用的辅助类(一)
  • :not(:first-child)和:not(:last-child)的用法
  • @FeignClient注解,fallback和fallbackFactory
  • @Mapper作用
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)