Как я могу изменить эту программу, чтобы взять число 3 di git и распечатать его в двоичном формате - PullRequest
0 голосов
/ 06 мая 2020
.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-программу, которая, когда я ввожу два числа di git, превращает их в двоичные, и я хочу изменить ее для трех чисел. Но я еще не очень разбираюсь в ассемблере, поэтому мне нужна помощь в понимании того, что мне следует изменить, а что нет, чтобы достичь этого. Я пробовал изменить некоторые значения, но пока не повезло.

1 Ответ

0 голосов
/ 07 мая 2020

Да ладно, у меня получается, вот как если кому интересно

.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
...