New Upload >>

Recent Uploads:

blast2
about 5 hours ago
blast.
about 5 hours ago
kBQYFrcxROq
about 8 hours ago
cWvrDZBzeXUIoh
about 11 hours ago
HJoBidIfSPpOLzzrt..
about 15 hours ago
QESxZdMecvKjZx
about 16 hours ago
GrgQEpZduKydAfrJ
1 day ago
LOL DNE
1 day ago
ImRXBBOK
about 3 days ago
fvemgiDRSSTqvuY
about 3 days ago

Pastebin Archive


Bookmark and Share




Calc

Posted on March 6, 2010, 8:13 pm UTC by Iago (6 months ago)

Code (highlighted for ASM)
  1. [BITS 16]
  2. [ORG 0X100]
  3.  
  4. SECTION .data
  5.         FIRST  DW "Insira um numero, ele sera adicionado de 1: ", 0X24
  6.         ERRONE DW "Nao pressione teclas especiais como F1!", 0X24
  7.         ERRTWO DW "Por favor, insira algum numero.", 0X24
  8.         CHAR   DQ 0
  9. SECTION .text
  10. MAIN:
  11.         XOR     DI, DI
  12.         CALL    CLR
  13.         MOV     DX, FIRST
  14.         MOV     AX, 0X0900
  15.         INT     0X21
  16.         CALL    GETKEYS
  17.         MOV     DX, [CHAR]
  18.         POP             DX
  19.         CALL    VER
  20.         CALL    _ADD
  21.         MOV     DX, [CHAR]
  22.         MOV     AX, 0X0900
  23.         INT     0X21
  24.         JMP     QUIT
  25.        
  26. GETKEYS:
  27.         MOV     AX, 0X0000
  28.         INT     0X16
  29.         TEST    AL, AL
  30.         MOV     DX, [ERRONE]
  31.         POP     DX
  32.         JZ              ERR
  33.         CMP     AL, 0X0D
  34.         JE              .FINISH
  35.         MOV     DL, AL
  36.         MOV     AX, 0X0200
  37.         INT     0X21
  38.         MOV     [CHAR+DI], AL
  39.         INC     DI
  40.         JMP             GETKEYS
  41.         .FINISH:
  42.                 MOV     AL, 0X24
  43.                 MOV     [CHAR+DI], AL
  44.                 RET
  45.        
  46.        
  47. ERR:
  48.         PUSH    DX
  49.         MOV     AX, 0X0900
  50.         INT     0X21
  51.         JMP     MAIN
  52.        
  53. VER:
  54.         PUSH    AX
  55.         CMP     AX, 0X24
  56.         MOV     DX, [ERRTWO]
  57.         POP             DX
  58.         JE              ERR
  59.         RET
  60.        
  61. CLR:
  62.         MOV     AX, 0X0600
  63.         MOV     BX, 0X0700
  64.         MOV     CX, 0X0000
  65.         MOV     DX, 0X2479
  66.         INT     0X10
  67.         MOV     AX, 0X0200
  68.         XOR     BX, BX
  69.         XOR     DX, DX
  70.         INT     0X10
  71.         RET
  72.        
  73. _ADD:
  74.         MOV     AX, [CHAR]
  75.         ADD     AX, 0X0001
  76.         MOV     [CHAR], AX
  77.         RET
  78.        
  79. QUIT:
  80.         INT     0X22