如何从键盘输入一个字符,并将该字符对应的ASCII码以二进制形式显示出来.

解题思路:
1:需要知道输入的数据是以ASCII码接收的比如运行print.exe输入字符A,对应的ASCII码41H就被传入到程序中
2:运用JNC指令判断执行SHL指令后CF的值的大小,如果CF=0就直接输出DL=0,如果CF!=0就继续执行以下操作让DL=DL+1,在输出DL=1。
3:2操作过程用loop指令重复八次,依次输出八个值就是字符的二进制编码

熟悉掌握系统功能调用,和指令的运用,对题目要有清晰的解题思路

print.asm文件

CSEG SEGMENT
  ASSUME CS:CSEG
MAIN: MOV AH,01H     ;3,4行作用:系统功能调用01H作用:键盘输入字符串,入口参数无,出口参数AL=输入字符
   INT 21H
   MOV BL,AL              ;5行作用:AL中存放字符的ascii码的数据送入BL中
   MOV DL,' '               ;6行作用:未知数存放到DL中为下两行做铺垫
   MOV AH,02H          ;7,8行作用:系统功能调用02H作用:显示输出字符串,入口参数DL=想要输出字符,出口参数无
   INT 21H
   MOV CX,8               ;9行作用:把8以二进制形式存入到CX中
AGAIN:MOV DL,'0'    ;10行作用:设置一个AGAIN标号(标号是一条指令的符号地址,代表该指令的第一个字节地址)并把字符串0以ASCII码的形式放入到DL中
      SHL BL,1              ;11行作用:SHL指令作用:把BL中的数左移一位
      JNC DISPALY      ;12行作用:JNC指令作用:如果CF=0,就跳转到DISPALY标号所在的指令处,不等于CF!=0就继续执行13行操作      
      INC DL               ;13行作用:INC 指令作用:DL自身加一,结果还是存入到DL中
DISPALY:MOV AH,02H ;14,15行作用:设置一个DISPALY标号,并通过系统功能调用02H,显示输出字符串,入口参数DL=想要输出字符,出口参数无
      INT 21H
      LOOP AGAIN       ;16行作用:当cpu执行loop指令的时候分两步,首先cx=cx-1,然后再判断cx中的数据是否为零,然后决定是继续执行循环的部分还是向下执行
      MOV AH,4CH     ;17,18行作用:调用系统功能调用4CH作用:程序结束后退出,入口参数AL=返回码,出口参数无
      INT 21H
CSEG ENDS
     END MAIN

运行结果
在这里插入图片描述

  • 9
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值