栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

[汇编语言]子程序结构 十进制到十六进制转换程序

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[汇编语言]子程序结构 十进制到十六进制转换程序



(十进制转化成二进制,二进制再转换成十六进制的ascll码输出,)

decihex segment
	assume cs:decihex
main proc far
repeat:
	call decibin
	call crlf
	call binihex
	call crlf
	jmp repeat
main endp
decibin proc near
	mov bx,0
	;从键盘上获得一个数字,将它转化成二进制                                                                                                                                      
newchar:
	mov ah,1h
	int 21h
	;从键盘上读取的都是ascll码
	sub al,30h;ascll码转换成二进制
	jl exit
	cmp al,9d
	jg exit
	cbw
	xchg ax,bx
	mov cx,10d
	mul cx
	xchg ax,bx
	add bx,ax
	jmp newchar
exit:
	ret
binihex proc near
	mov ch,4h
	
rotate:
	mov cl,4h;值得注意的是:移位数只能是1或者CL这个寄存器,当移位数大于1时就必须采用寄存器的方式
	rol bx,cl
	mov al,bl
	and al,0fh
	add al,30h
	cmp al,3ah
	jl print
	add al,7h
print
	mov dl,al
	mov ah,2
	int 21h
	dec ch
	jnz rotate
	ret
binihex endp

crlf proc mear
	mov dl,0dh;回车的ascll码
	mov ah,2h
	int 21h
	mov dl,0ah;换行的ascll码
	mov ah,2h
	int 21h
	ret
crlf endp
decihex ends
	end main



而数字的ascll范围为30h~39h
字母的范围41h开始(大写A)
再调用DOS命令2

乘法指令

MUL REG/MEM ;REG寄存器,MEM存储器

IMUL REG/MEM
MUL和IMUL指令分别用于实现无符号数的乘法和有符号数的乘法运算。都只有一个源操作数,可以使寄存器或存储器,而且目标操作数隐含规定在累加器中。

1)MUL/IMUL指令

(a)字节乘法,则AL×REG8/MEM8,乘积存于AX中。

(b)字乘法,则AX×REG16/MEM16,乘积的高16位存放在DX中,低16位存放在AX中。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/926065.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号