Advertisement
gingerswaltz

ASM_LAST

Dec 19th, 2022
480
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. format mz
  2. org 100h
  3. mov di, str1
  4. add di,4
  5. movsx ax, [x] ; n=x
  6. mov cx, 0 ;int count=0;
  7. test al, al ;if(n<0)
  8. jns @forward ;{
  9. mov [di], byte '-'; putch('-');
  10. inc di
  11. neg al ; n = fabs(n);
  12. @forward: ;};
  13. mov bh, 10
  14. @back: ;do{
  15. mov ah, 0 ; int reminder= n%10;
  16. div bh ; n = n /10;
  17. add ah, '0' ; push(reminder+'0');
  18. ;цифровые символы '0'-'9' в таблице ASCII расположены в том же порядке, что и цифры 0-9 в десятичной системе счисления.
  19. ;Значит, если мы возьмём символ '0' и прибавим к его коду число от 0 до 9, то, получим код символа, соответствующего этому числу.
  20. mov bl, ah
  21. push bx ; закинем в стек то что хотим в дальейнем преобразовать
  22. inc cx ; count++;
  23. test al, al
  24. jnz @back ;}while(n==0)
  25. ;
  26. @for: ;for( ;count>0; count--)
  27. ;{
  28. pop ax ; pop(c);
  29. stosb ; putch(c)
  30. loop @for ;}
  31.  
  32. mov al, '$'
  33. stosb
  34.  
  35.  
  36.  
  37. mov ah,09h
  38. mov dx, str1
  39. int 21h
  40. mov ah, 01h
  41. int 21h
  42. mov ah, 4ch
  43. mov al, 0
  44. int 21h
  45.  
  46.  
  47. x db -127 ; -128..127
  48. str1 db "x = "
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement