390 likes | 483 Views
Programs & Defining Data. Ch.5 – pp. 95-109. Data in Computer Memory. 480. Byte locations in memory - One character per byte location. 481. 482. 483. See page 69. Data in Memory. 480.
E N D
Programs & Defining Data Ch.5 – pp. 95-109
Data in Computer Memory 480 Byte locations in memory - One character per byte location 481 482 483 See page 69
Data in Memory 480 G = C7 = 1100 0111E = C5 = 1100 0101O = D6 = 1101 0110R = D9 = 1101 1001G = C7 = 1100 0111E = C5 = 1100 01013 = F3 = 1111 00114 = F4 = 1111 0100 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
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 characters1st must be alphabetic 1. Duplication factor2. Type code3. Length
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: MOVE OWKPRICE,INVCOST *MOVE COST TO PRICEMOVE OWKONHND,INVHAND *MOVE ONHAND TO ONHANDPUT OUTFILE,OWKAREA *PRINT ENTIRE O/P RECORD Defining Storage Example 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
Initializing Storage Areas Define Constants – DC, rather than DS ABC DC C’ABC’ C1 C2 C3 DSIGN DC C’$’ 5B NO3 DC C’3’ F3 NAME DC C’JOE’ D1 D6 C5 TAXRT DC C’28’ F2 F8
Example (w/instructions) CALC PACK RATE(4),TAXRT PACK TAXAMT(6),TOTINC MP TAXAMT(6),RATE UNPK INCTAX(8),TAXAMT(6) ….. RATE DS F TAXRT DC CL2’20’ *F2 F0 TAXAMT DS PL6 TOTINC DC CL’40000’ *F4 F0 F0 F0 F0 INCTAX DS CL8
Other Data Types [label] DS/DC C character X hex P packed dec. B binary F fullword (bin) H halfword (bin) D doubleword
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 Assign positional values to each binary digit beginning on the right – right-most bit is 2º, next bit to the left is 21, then 22, and so forth. Then simply add up the equivalent decimal values where there are 1-bits in the binary field above. 1 + 8 + 32 + 256 + 512 = 809
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 1517810 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
3 B 4 A 15178- 12288 2890 2890- 2816 74 74 - 64 10 1 2 3 4 10 = A 15,178 =
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
p. 84/85 Book Examples PACK RECEIVING,SENDING
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
p. 85 Book Examples UNPK RECEIVING,SENDING
p. 76 Quick Review of Data ZD = F2 F0 F5 F5 F9 F7 F4 F7 F4 PD = 20 55 97 47 4F Hex = 0C 41 2B 22 Bin = 0000 1100 0100 0001 0010 1011 0010 0010
Instruction Formats Page 76 - bottom
Instruction Lengths M2 2 addresses – sending and receiving fields
Sending and Receiving Fields(A Reminder) See page 77 at the top
Add Decimal AP M1(L1),M2(L2) 6-byte format Decimal Arithmetic In the 2nd Add: high-order digit overflowed and lost
Subtract Decimal SP M1(L1),M2(L2) 6-byte format Decimal Arithmetic
Multiply Decimal MP M1(L1),M2(L2) L1 has a max length of 16 bytes L2 has a max length of 8 bytes Decimal Arithmetic
Divide Decimal DP M1(L1),M2(L2) 6-byte format Decimal Arithmetic 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
Zero-And-Add Packed ZAP M1(L1),M2(L2) 6-byte format More like a Move instruction than an Add Instruction Decimal Arithmetic