120 likes | 355 Views
CSCI 2510 Tutorial 1 Basic Assembly and Data Representation. ZONG Wen Department of Computer Science and Engineering The Chinese University of Hong Kong wzong@cse.cuhk.edu.hk. Main topic:. 1. Write an assembly program with given instruction 2. Two’s complement operation
E N D
CSCI 2510 Tutorial 1Basic Assembly and Data Representation ZONG Wen Department of Computer Science and Engineering The Chinese University of Hong Kongwzong@cse.cuhk.edu.hk
Main topic: 1. Write an assembly program with given instruction 2. Two’s complement operation 3. Ordering of bytes in data
Write a machine program with given instruction Basic component of a computer
Write a machine program with given instruction There are only 6 machine instructions on a single-accumulator processor, namely: Load [Memory] {to ACC} e.g. Load [2872] Store [Memory] {from ACC} e.g. Store [1536] Add Constant {to ACC} e.g. Add -95 Add [Memory] {to ACC} e.g. Add [2132] Multiply Constant {to ACC} e.g. Multiply 23 Multiply [Memory] {to ACC} e.g. Multiply [298]
Write a machine program with given instruction Variable x and y are stored in address 1000 and 1004, try to implement x2 + y2, store the result in 1008. Load [1000]; load data to register Multiply [1000]; perform memory + register operation Store [1008]; store temporary result to memory Load[1004]; Multiply[1004]; Add[1008]; Store[1008]; store result
Operation on two’s complement Example: (–6) + 8 * 3 – 1 Step 1 11111010 + (00001000 * 00000011) – 00000001 Step 2 (11111010 + 00011000) – 00000001 Step 3 00010010 – 00000001 Step 4 00010001 Step 5 17 (decimal answer without overflow)
Operation on two’s complement Example: (–6) + 8 * 3 – 1 Step 1 11111010 + (00001000 * 00000011) – 00000001 Step 2 (11111010 + 00011000) – 00000001 Step 3 00010010 – 00000001 Step 4 00010001 Step 5 17 (decimal answer without overflow)
Big endian and little endian In big endian, you store the most significant byte in the smallest address In little endian, you store the least significant byte in the smallest address
Big endian and little endian For a data of 4 bytes: 90AB12CD Big endian:
Big endian and little endian For a data of 4 bytes: 90AB12CD Little endian: