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

在这里插入图片描述
在这里插入图片描述
(十进制转化成二进制,二进制再转换成十六进制的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中。
  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值