Presentation on theme: "Programs & Defining Data Ch.5 – pp. 95-109. Data in Computer Memory See page 69 480 481 482 Byte locations in memory - One character per byte location."— Presentation transcript:
Data in Computer Memory See page 69 480 481 482 Byte locations in memory - One character per byte location 483
Data in Memory G=C7=1100 0111 E=C5=1100 0101 O=D6=1101 0110 R=D9=1101 1001 G=C7=1100 0111 E=C5=1100 0101 3=F3=1111 0011 4=F4=1111 0100 480 The characters shown in memory are really made up of binary digits (bits) as depicted to the right. In a mainframe computer, the bits are configured as EBCDIC whereas in a PC, the bit configurations are different, in ASCII. Are you comfortable with ASCII and EBCDIC? Are you comfortable with binary/hexadecimal data configurations? If not, check out your textbook on pages: 68-76 in Ch.4
DecimalBinaryHex 000000 100011 200102 300113 401004 501015 601106 701117 810008 910019 101010A 111011B 121100C 131101D 141110E 151111F 161 000010 Hexadecimal conversion chart – the same as shown in your text on page 70. Representing Data 1 Character = 1 Byte = 2 Hex Digits
Representing Character Data Left justified - padded with blanks (40) - truncated to the right Example: GEORGE=C7 C5 D6 D9 C7 C5
Defining Storage Reserve Storage with no initialization See Data Definitions topic beginning p.103 Used to allow a symbolic name for an area of memory symbolicname DS definition 1-8 alphanumeric characters 1 st must be alphabetic 1. Duplication factor 2. Type code 3. Length
Defining Storage Example Output buffer area that will be printed – allows each sub-field to be identified and accessed symbolically and the entire area can also be accessed as OWKAREA. Example: MOVEOWKPRICE,INVCOST*MOVE COST TO PRICE MOVEOWKONHND,INVHAND*MOVE ONHAND TO ONHAND PUTOUTFILE,OWKAREA*PRINT ENTIRE O/P RECORD p. 103
The numbers within the orange boxes represent the field lengths in bytes. The labels represent the subfield name (statement label). The entire field (made up of 7 subfields) constitutes the output buffer. Each subfield can be manipulated, then accessed together and in the same order as parts of OWKAREA
And the Memory Reserved? UNPK OWKPRICE(5),PPRICE Print from OWKAREA
Other Data Types [label]DS/DCCcharacter Xhex Ppacked dec. Bbinary Ffullword (bin) Hhalfword (bin) Ddoubleword
Representing Zoned Decimal Numbers are left justified, also padded to the right with blanks (same as character data) 1234=F1 F2 F3 F4 F1 F2 F3 C4 Feb. 8, 2007
Representing Packed Decimal Right justified, padded with leading zeroes +1234=0001234C -1234=0001234D The top value is positive and the sign character is the right-most part of the value in memory. The lower value is negative. Notice the difference in the sign character.
Representing Binary Data 1 byte = 8 binary digits (bits) 1011 0110 (B6) Halfword = 2 bytes Fullword = 4 bytes The top value, defined as binary digits with length of 2 bytes in memory appears just as the value appears in the DC operand (but with 8 bits of leading 0’s as padding). On the other hand, when defined as a fullword (also binary), in memory, the 1-bits are no different, but there would be 4 bytes instead of 2 bytes – ‘0000 0000 0000 0000 0000 0000 0001 0110’
Convert Binary to Decimal 001100101001 204810245122561286432168421 1 + 8 + 32 + 256 + 512 = 809 Assign positional values to each binary digit beginning on the right – right-most bit is 2º, next bit to the left is 2 1, then 2 2, and so forth. Then simply add up the equivalent decimal values where there are 1-bits in the binary field above.
Use the Scientific Calculator Calculators are found under the Accessories menu when you ‘click’ on the START button in the lower left corner of your screen. For the Scientific Calculator, click on the VIEW menu in the Calculator Window and choose ‘Scientific’ … Enter your DEC number, then ‘Click’ the BIN button to convert Dec Bin
Convert Decimal to Binary Use the table on the top of page 75 that shows converting hex to decimal, but use it in reverse. Example: convert 15178 10 to hex Using entire table, find smallest number less than the number you are attempting to convert which is 12,228 which is hex 3000 (in Byte 3 in left-hand column). Record the Hex value on your piece of paper…3000. Subtract 12,228 from the original number – which is 2890 Find next smallest number again in the next column to the right (2816). Record the Hex value … B00 And so on until you are at the far right column (64 and 10). Record the Hex values … 40 and A 3B4A in hex is 0011 1011 0100 1010 in binary answer. Or use the Scientific Calculator See the process on the next slide
Or - Convert Doing the Arithmetic 15178 / 16 = 948.625 Remainder.625 is integer.625 X 16 = 10 (A) 948 / 16 = 59.25 Remainder.25 is integer.25 X 16 = 4 (4) 59 / 16 = 3.6875 Remainder.6875 is integer.6875 X 16 = 11 (B) 3/16 = 0.1875 Remainder.1875 is integer.1875 X 16 = 3 (3) Using result in reverse order = 3B4A
Converting Zoned to Packed Decimal Use the PACK instruction (p.84 & 85) Read a number from an input file. It is now in memory in zoned- decimal format – you cannot do arithmetic on it, so PACK it first (PACK removes the zones) PACK removes all the zones except the right-most, then reverses the right-most byte See examples on the next slide
Converting Packed to Zoned Decimal Use the UNPK instruction (p. 85) You have completed performing arithmetic on a value and you wish to print it – packed decimal data is not printable UNPK puts zones back in the numbers and reverses the two right-most characters. See examples on the next slide
Decimal Arithmetic Multiply Decimal MPM1(L1),M2(L2) –L1 has a max length of 16 bytes –L2 has a max length of 8 bytes M1(L1)M2(L2) Before:00 00 8C50 0F After:04 00 0C50 0F
Decimal Arithmetic Divide Decimal DPM1(L1),M2(L2)6-byte format M1(L1)M2(L2) Before:00 00 00 05 3C00 7C After:00 00 7C 00 4C00 7C Quotient Remainder – length of divisor Before the instruction is executed, M2 is the divisor, M1 is the dividend. L1 and L2 are the lengths of each
Decimal Arithmetic Zero-And-Add Packed ZAPM1(L1),M2(L2)6-byte format More like a Move instruction than an Add Instruction M1(L1)M2(L2) Before:12 45 9C1C After:00 00 1C1C
Your consent to our cookies if you continue to use this website.