Assembler 64 bit                         goto homepage

welche Zahlen (dezimal, hexadezimal und binär) ergeben 2**1 bis 2**64?

 

 

* ------------------------------------------------------------------- *
*                                                                     *
*  FUNCTION:  CREATE A POWER OF TWO TABLE USING ASSEMBLER             *
*             PRODUCE HEX DEC BIN                                     *
*  COPYRIGHT 2005-?? YCOS YVES COLLIARD SOFTWARE GMBH V 1.0           *
*                                                                     *
* ------------------------------------------------------------------- *
Y64BIT CSECT
Y64BIT AMODE 31
Y64BIT RMODE 24
         BAKR  R14,0
         LR    R12,R15
         USING Y64BIT,R12
         LA    R13,SAVEA
         OPEN  (BIT64,OUTPUT)      OPEN THE FILE
         PUT   BIT64,HEAD
         XGR   R2,R2         CLEAR R2
         LGHI  R2,1          SET START TO 1
         LA    R3,1          SET LOOP COUNT
         LA    R8,64         SET END OF LOOP
LOOP     EQU   *
         SLLG  R2,R2,1       MULTIPLY BY 2
*
         CVDG  R2,SAVEDEC    SAVE DECIMAL
         LA    R4,OUTDEC     OUTPUT DEC
         MVC   32(32,R4),EDIT1
         ED    32(32,R4),SAVEDEC+3
*
         CVD   R3,NORMREG
         UNPK  NORMUNP,NORMREG+6(2)
         OI    NORMUNP+4,X'F0'
         MVC   0(2,R4),NORMUNP+3
*
         STG   R2,LARGEREG   LARGE REG
         LA    R10,8(0)
         LA    R9,LARGEREG   INPUT
         AR    R10,R9
         LA    R7,16(,R4)    OUTPUT
LOOPHEX  SLR   R5,R5
         SLR   R6,R6
         ICM   R5,1,0(R9)
         LR    R6,R5
         N     R5,=X'0000000F'
         O     R5,=X'000000F0'
         ST    R5,SECP
         N     R6,=X'000000F0'
         SRA   R6,4(0)
         O     R6,=X'000000F0'
         ST    R6,FIRP
         SLR   R6,R6
         LA    R6,TRANSNUM                 USE TRANSLATE FOR
         SL    R6,TRANSC0                    CHANGING X'FX' TO X'CX'
         TR    FIRP+3(1),0(R6)             EX : X'FA' -> X'CA'
         TR    SECP+3(1),0(R6)             EX : X'FA' -> X'CA'
         MVC   0(1,R7),FIRP+3
         MVC   1(1,R7),SECP+3
         LA    R7,2(R7)
         LA    R9,1(R9)
         CLR   R9,R10
         BL    LOOPHEX
*
         LA    R5,BIN
         LA    R4,ENDBIN
         BCTR  R4,0
         LGR   R11,R2
LOOPBIN  EQU   *
         LGR   R10,R11
         NG    R10,=X'0000000000000001'
         OG    R10,=X'00000000000000F0'
         CLI   0(R4),C'.'
         BNE   CONT
         BCTR  R4,0
CONT     STCM  R10,1,0(R4)
         SRLG  R11,R11,1
         BCTR  R4,0
         CR    R4,R5
         BNL   LOOPBIN
*
         PUT   BIT64,OUTDEC
*
         LA    R3,1(,R3)
         CLR   R3,R8
         BL    LOOP
*
         CLOSE BIT64
*
         XR    R15,R15
         PR
*
FIRP     DC    X'00000000'
SECP     DC    X'00000000'
*
TRANSC0  DC    XL3'00'                  ADDRESS OF BEGIN OF TRANS TABLE
         DC    C'0'                     1RST CHAR OF TRANSLASTE
TRANSNUM DC    C'0123456789ABCDEF'      TRANSLATE TABLE FOR DEVNUM
EDIT1    DC    X'202020206B2020206B2020206B2020206B2020206B202020'
         DC    X'6B2020206B202120'
*DIT1    DC    C'    ,   ,   ,   ,   ,   ,   ,   '
*                12345678901234567890123456789012
NORMREG  DS    CL8
NORMUNP  DS    CL5
LARGEREG DS    CL16
SAVEDEC  DS    CL16
RCODE1   DS    CL16
RCODE2   DS    CL16
         DS    0F
SAVEA    DS    16F
BIT64    DCB   DDNAME=BIT64,       DCB FOR OUTPUT FILE                 X
               DSORG=PS,                                               X
               MACRF=PM,                                               X
               RECFM=FB,                                               X
               LRECL=ENDBIN-OUTDEC
         YREGS ,
         LTORG
HEAD     DC    C'##'
         DC    C'              '
         DC    C'     HEXADECIMAL'
         DC    C'                         DECIMAL'
         DC    C'    '
         DC    C'                                   '
         DC    C'                                      BINARY'
OUTDEC   DC    CL64' '
         DC    C'    '
BIN      DC    CL4' '
         DC    C'.'
         
DC    CL4' '
         DC    C'.'
         DC    CL4' '
         DC    C'.'
         DC    CL4' '
         DC    C'.'
         DC    CL4' '
         DC    C'.'
         DC    CL4' '
         DC    C'.'
         DC    CL4' '
         DC    C'.'
         DC    CL4' '
         DC    C'.'
         DC    CL4' '
         DC    C'.'
         DC    CL4' '
         DC    C'.'
         DC    CL4' '
         DC    C'.'
         DC    CL4' '
         DC    C'.'
         DC    CL4' '
         DC    C'.'
         DC    CL4' '
         DC    C'.'
         DC    CL4' '
         DC    C'.'
        
DC    CL4' '
ENDBIN   EQU *
         END   ,

 

 

Resultat:

#                   HEXADECIMAL                         DECIMAL                                                                             BINARY

1              0000000000000002                               2    0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0010

2              0000000000000004                               4    0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0100

3              0000000000000008                               8    0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.1000

4              0000000000000010                              16    0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0001.0000

5              0000000000000020                              32    0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0010.0000

6              0000000000000040                              64    0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0100.0000

7              0000000000000080                             128    0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.1000.0000

8              0000000000000100                             256    0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0001.0000.0000

9              0000000000000200                             512    0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0010.0000.0000

0              0000000000000400                           1,024    0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0100.0000.0000

1              0000000000000800                           2,048    0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.1000.0000.0000

2              0000000000001000                           4,096    0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0001.0000.0000.0000

3              0000000000002000                           8,192    0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0010.0000.0000.0000

4              0000000000004000                          16,384    0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0100.0000.0000.0000

5              0000000000008000                          32,768    0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.1000.0000.0000.0000

6              0000000000010000                          65,536    0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0001.0000.0000.0000.0000

7              0000000000020000                         131,072    0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0010.0000.0000.0000.0000

8              0000000000040000                         262,144    0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0100.0000.0000.0000.0000

9              0000000000080000                         524,288    0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.1000.0000.0000.0000.0000

0              0000000000100000                       1,048,576    0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0001.0000.0000.0000.0000.0000

1              0000000000200000                       2,097,152    0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0010.0000.0000.0000.0000.0000

2              0000000000400000                       4,194,304    0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0100.0000.0000.0000.0000.0000

3              0000000000800000                       8,388,608    0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.1000.0000.0000.0000.0000.0000

4              0000000001000000                      16,777,216    0000.0000.0000.0000.0000.0000.0000.0000.0000.0001.0000.0000.0000.0000.0000.0000

5              0000000002000000                      33,554,432    0000.0000.0000.0000.0000.0000.0000.0000.0000.0010.0000.0000.0000.0000.0000.0000

6              0000000004000000                      67,108,864    0000.0000.0000.0000.0000.0000.0000.0000.0000.0100.0000.0000.0000.0000.0000.0000

7              0000000008000000                     134,217,728    0000.0000.0000.0000.0000.0000.0000.0000.0000.1000.0000.0000.0000.0000.0000.0000

8              0000000010000000                     268,435,456    0000.0000.0000.0000.0000.0000.0000.0000.0001.0000.0000.0000.0000.0000.0000.0000

9              0000000020000000                     536,870,912    0000.0000.0000.0000.0000.0000.0000.0000.0010.0000.0000.0000.0000.0000.0000.0000

0              0000000040000000                   1,073,741,824    0000.0000.0000.0000.0000.0000.0000.0000.0100.0000.0000.0000.0000.0000.0000.0000

1              0000000080000000                   2,147,483,648    0000.0000.0000.0000.0000.0000.0000.0000.1000.0000.0000.0000.0000.0000.0000.0000

2              0000000100000000                   4,294,967,296    0000.0000.0000.0000.0000.0000.0000.0001.0000.0000.0000.0000.0000.0000.0000.0000

3              0000000200000000                   8,589,934,592    0000.0000.0000.0000.0000.0000.0000.0010.0000.0000.0000.0000.0000.0000.0000.0000

4              0000000400000000                  17,179,869,184    0000.0000.0000.0000.0000.0000.0000.0100.0000.0000.0000.0000.0000.0000.0000.0000

5              0000000800000000                  34,359,738,368    0000.0000.0000.0000.0000.0000.0000.1000.0000.0000.0000.0000.0000.0000.0000.0000

6              0000001000000000                  68,719,476,736    0000.0000.0000.0000.0000.0000.0001.0000.0000.0000.0000.0000.0000.0000.0000.0000

7              0000002000000000                 137,438,953,472    0000.0000.0000.0000.0000.0000.0010.0000.0000.0000.0000.0000.0000.0000.0000.0000

8              0000004000000000                 274,877,906,944    0000.0000.0000.0000.0000.0000.0100.0000.0000.0000.0000.0000.0000.0000.0000.0000

9              0000008000000000                 549,755,813,888    0000.0000.0000.0000.0000.0000.1000.0000.0000.0000.0000.0000.0000.0000.0000.0000

0              0000010000000000               1,099,511,627,776    0000.0000.0000.0000.0000.0001.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000

1              0000020000000000               2,199,023,255,552    0000.0000.0000.0000.0000.0010.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000

2              0000040000000000               4,398,046,511,104    0000.0000.0000.0000.0000.0100.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000

3              0000080000000000               8,796,093,022,208    0000.0000.0000.0000.0000.1000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000

4              0000100000000000              17,592,186,044,416    0000.0000.0000.0000.0001.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000

5              0000200000000000              35,184,372,088,832    0000.0000.0000.0000.0010.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000

6              0000400000000000              70,368,744,177,664    0000.0000.0000.0000.0100.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000

7              0000800000000000             140,737,488,355,328    0000.0000.0000.0000.1000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000

8              0001000000000000             281,474,976,710,656    0000.0000.0000.0001.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000

9              0002000000000000             562,949,953,421,312    0000.0000.0000.0010.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000

0              0004000000000000           1,125,899,906,842,624    0000.0000.0000.0100.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000

1              0008000000000000           2,251,799,813,685,248    0000.0000.0000.1000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000

2              0010000000000000           4,503,599,627,370,496    0000.0000.0001.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000

3              0020000000000000           9,007,199,254,740,992    0000.0000.0010.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000

4              0040000000000000          18,014,398,509,481,984    0000.0000.0100.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000

5              0080000000000000          36,028,797,018,963,968    0000.0000.1000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000

6              0100000000000000          72,057,594,037,927,936    0000.0001.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000

7              0200000000000000         144,115,188,075,855,872    0000.0010.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000

8              0400000000000000         288,230,376,151,711,744    0000.0100.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000

9              0800000000000000         576,460,752,303,423,488    0000.1000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000

0              1000000000000000       1,152,921,504,606,846,976    0001.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000

1              2000000000000000       2,305,843,009,213,693,952    0010.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000

2              4000000000000000       4,611,686,018,427,387,904    0100.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000

3              8000000000000000       9,223,372,036,854,775,808    1000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000