繁体   English   中英

如何更改此程序以获取 3 位数字并以二进制形式打印

[英]How can I change this program to take a 3 digit number and print it in binary

.model small
.stack 512
.data
   cad  db 9 dup (' '),'$'
   var1 db ?
   num  db ?
   aux  db ?

  .code
   .startup
   mov var1,0   
   mov ah,01h  
   int 21h     
   sub al,30h   
   mov num,al   
   mov al,num   
   mov bl,10    
   mul bl       
   mov aux,al   
   mov var1,0   
   mov ah,01h
   int 21h      
   sub al,30h
   add aux,al   
   mov bl,aux   
   mov num,bl   
   mov ah,02h   
   mov dl,'='
   int 21h
   mov SI,6        
   bin:             
      mov Ah,00h    
      mov Al,num
      mov Bl,2
      div Bl
      mov var1,Ah
      mov num,Al
      mov dl,var1
      add dl,30h
      mov cad[SI],dl    
      cmp num,1         
      dec SI
      jne bin      
      je out    
      cmp num,0     
      jne bin
      je out
   out:          
   mov dl,num    
      add dl,30h
      mov cad[SI],dl
  mov ah,09h
  lea Dx,cad
  int 21h

.exit
end

所以我得到了这个 asm 程序,当我输入两位数字时,它会将它们转换为二进制,我想将其修改为三个数字。 但是我对汇编器还不太了解,所以我需要一些帮助来理解我应该改变什么以及我不应该改变什么才能实现这一点。 我试过改变一些价值观,但到目前为止还没有改变运气。

没关系,我设法做到了,如果有人感兴趣,这就是

.model small
.stack ;512
.data
   cad  db 9 dup (' '),'$'
   var1 db ?
   num  db ?
   aux  db ?

  .code
   .startup
   mov var1,0   
   mov ah,01h   
   int 21h      
   sub al,30h   
   mov num,al   
   mov al,num   
   mov bl,10    
   mul bl     
   mov aux,al   

   mov var1,0   
   mov ah,01h
   int 21h      
   sub al,30h
   add aux,al   
   mov al,aux  
   mov num,al   
   mov bl,10    
   mul bl      
   mov aux,al   

   mov var1,0   
   mov ah,01h
   int 21h      
   sub al,30h
   add aux,al   
   mov bl,aux  
   mov num,bl   
   mov ah,02h   
   mov dl,'='
   int 21h
   mov SI,8        
   bin:             
      mov Ah,00h   
      mov Al,num
      mov Bl,2
      div Bl
      mov var1,Ah
      mov num,Al
      mov dl,var1
      add dl,30h
      mov cad[SI],dl    
      cmp num,1       
       dec SI
       jne bin      
       je out   
       cmp num,0     
       jne bin
       je out
   out:          
   mov dl,num    
      add dl,30h
      mov cad[SI],dl
  mov ah,09h
  lea Dx,cad
  int 21h

.exit
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM