首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这段代码的工作原理(汇编)

这段代码的工作原理(汇编)
EN

Stack Overflow用户
提问于 2015-12-24 16:24:59
回答 1查看 69关注 0票数 2

我的老师解释得不是很好,所以我问你为什么这段代码会把一个字符变成十六进制?

代码语言:javascript
复制
proc convert  
  cmp DL, 9  
  jbe its_a_digit ;JUMP IF ( DL <= 9 )  
;its_a_letter:  IF NO JUMP, STAYS HERE  
  add dl, 55 ;CONVERT TO LETTER  
  jmp finish 

its_a_digit:    
  add dl, 48 ;CONVERT TO DIGIT  
finish:  
  ret  
endp   

例如a-> 61 A->41 0->30

EN

回答 1

Stack Overflow用户

发布于 2015-12-24 17:28:12

该代码只是将0-15范围内的DL寄存器的转换为其ASCII码。

将寄存器DL的输入数与9进行比较

代码语言:javascript
复制
cmp DL, 9
jbe its_a_digit ;JUMP IF ( DL <= 9 )

如果输入数字大于9,则添加'A‘符号的ASCII代码

代码语言:javascript
复制
add dl, 55 ;CONVERT TO LETTER
jmp finish

如果输入数字小于或等于9,则添加'0‘(零)符号的ASCII代码

代码语言:javascript
复制
its_a_digit:
add dl, 48 ;CONVERT TO DIGIT
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34449591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档