标题:小白,请教汇编:从键盘接收一个四位的16进制数,并在终端上显示与它等值的 ...
取消只看楼主
阿凡的夏天
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2020-4-9
结帖率:100%
已结贴  问题点数:10 回复次数:3 
小白,请教汇编:从键盘接收一个四位的16进制数,并在终端上显示与它等值的二进制数。
DATAS SEGMENT
    ;此处输入数据段代码   
DATAS ENDS
 
STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS
 
CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
     
    mov bx,0
    mov ch,4
    mov cl,4
 S: mov ah,01h   ;键盘输入,带回显
    int 21h
    cmp al,39h
    jbe next    ;<=
    sub al,07h  ;>
     
next:sub al,30h
     shl bx,cl   ;逻辑左移
     add bl,al
     dec ch
     jnz s      ;不等于
     mov cx,16
  s1:mov dl,0
     rol bx,1   ;循环左移
     adc dl,30h
      
     mov ah,02h ;显示一个字符
     int 21h
     loop s1
     
 
    ;此处输入代码段代码
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START
 
网上看到的一道题,不太理解其中指令的意思,请多指教
搜索更多相关主题的帖子: 输入 MOV 显示 代码 键盘 
2020-05-03 15:20
阿凡的夏天
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2020-4-9
得分:0 
回复 2楼 Valenciax
不会的有点多,,自己也看了好长时间,
1.mov cl,     cl是做什么的
2.sub al,07h  大于为什么要减去7
3.add bl,al   什么意思
4.mov cx,16   什么含意
5. rol bx,1   
   adc dl,30h


2020-05-03 17:16
阿凡的夏天
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2020-4-9
得分:0 
回复 2楼 Valenciax
对了,我还感觉这段代码不太正确,不能达到 从键盘接收一个四位的16进制数,并在终端上显示与它等值的二进制数的效果
2020-05-03 17:27
阿凡的夏天
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2020-4-9
得分:0 
回复 5楼 Valenciax
非常感谢您的解答,一看您写的代码,就知道是行家,
我其实才刚刚入门,之前并没有学过汇编,因为现在在学微机原理;
接触到了汇编程序,这才开始接触汇编,还是要谢谢您的耐心解答
2020-05-03 20:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-501399-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.199756 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved