Guide to Assignment 3 Programming Tasks 1 CSE 2312 Computer Organization and Assembly Language Programming Vassilis Athitsos University of Texas at Arlington.

Slides:



Advertisements
Similar presentations
compilers and interpreters
Advertisements

SYMBOL TABLES &CODE GENERATION FOR EXECUTABLES. SYMBOL TABLES Compilers that produce an executable (or the representation of an executable in object module.
Chapter 11 Implementing an Assembler and a Linker Using C++ and Java.
Write a program step by step. Step 1: Problem definition. Given the coordinate of two points in 2-D space, compute and print their straight distance.
Elementary Data Structures: Part 2: Strings, 2D Arrays, Graphs
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Programming Logic & Design First Edition by Tony Gaddis.
CSCE 121, Sec 200, 507, 508 Fall 2010 Prof. Jennifer L. Welch.
Program Flow Charting How to tackle the beginning stage a program design.
Chapter 4 H1 Assembly Language: Part 2. Direct instruction Contains the absolute address of the memory location it accesses. ld instruction:
Chapter 1 Data Storage. 2 Chapter 1: Data Storage 1.1 Bits and Their Storage 1.2 Main Memory 1.3 Mass Storage 1.4 Representing Information as Bit Patterns.
Implementation of a Stored Program Computer
Guide To UNIX Using Linux Third Edition
Homework Reading –Finish K&R Chapter 1 (if not done yet) –Start K&R Chapter 2 for next time. Programming Assignments –DON’T USE and string library functions,
Assembly & Machine Languages
Connecting with Computer Science 2 Objectives Learn why numbering systems are important to understand Refresh your knowledge of powers of numbers Learn.
Homework Reading Programming Assignments
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
Aloha Aloha What you see: What the computer sees: binary number columns binary number columns
CPS120: Introduction to Computer Science
Chapter 5: Data Input and Output Department of Computer Science Foundation Year Program Umm Alqura University, Makkah Computer Programming Skills
CIS Computer Programming Logic
General Computer Science for Engineers CISC 106 Lecture 02 Dr. John Cavazos Computer and Information Sciences 09/03/2010.
A First Program CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington Credits: a significant part of.
MIPS coding. SPIM Some links can be found such as:
Computer Programming Basics Assistant Professor Jeon, Seokhee Assistant Professor Department of Computer Engineering, Kyung Hee University, Korea.
Pengantar Teknologi Informasi dan Ilmu Komputer Information Technology and Data Representation PTIIK- UB.
IPC144 Introduction to Programming Using C Week 1 – Lesson 2
Chapter 3: Completing the Problem- Solving Process and Getting Started with C++ Introduction to Programming with C++ Fourth Edition.
DEPARTMENT OF COMPUTER SCIENCE & TECHNOLOGY FACULTY OF SCIENCE & TECHNOLOGY UNIVERSITY OF UWA WELLASSA 1 CST 221 OBJECT ORIENTED PROGRAMMING(OOP) ( 2 CREDITS.
CP104 Introduction to Programming File I/O Lecture 33 __ 1 File Input/Output Text file and binary files File Input/output File input / output functions.
Mastering Char to ASCII AND DOING MORE RELATED STRING MANIPULATION Why VB.Net ?  The Language resembles Pseudocode - good for teaching and learning fundamentals.
Data Representation and Storage Lecture 5. Representations A number value can be represented in many ways: 5 Five V IIIII Cinq Hold up my hand.
Computer Systems Organization CS 1428 Foundations of Computer Science.
CS 114 – Class 02 Topics  Computer programs  Using the compiler Assignments  Read pages for Thursday.  We will go to the lab on Thursday.
Implementation of a Stored Program Computer ITCS 3181 Logic and Computer Systems 2014 B. Wilkinson Slides2.ppt Modification date: Oct 16,
Engineering Computing I Chapter 1 – Part A A Tutorial Introduction.
Homework #5 New York University Computer Science Department Data Structures Fall 2008 Eugene Weinstein.
Property of Jack Wilson, Cerritos College1 CIS Computer Programming Logic Programming Concepts Overview prepared by Jack Wilson Cerritos College.
What is Programming? A program is a list of instructions that is executed by a computer to accomplish a particular task. Creating those instructions is.
CS2910 Week 1, Class 2 Today Announce Prof. Michael Vieau’s S-341 6p Thurs Wk 2 Assignment for tomorrow Data Encoding, Part 1 Parsing Data Muddiest Point.
Computer Foundations Dr. John P. Abraham Professor UTPA.
PIC – ch. 2c. 2.5 PIC Data formats Numbers can be – Hex – Binary – Decimal – ASCII formats.
More on Assembly 1 CSE 2312 Computer Organization and Assembly Language Programming Vassilis Athitsos University of Texas at Arlington.
The character data type char. Character type char is used to represent alpha-numerical information (characters) inside the computer uses 2 bytes of memory.
Introduction to Unix (CA263) File Editing By Tariq Ibn Aziz.
Info stored in computer (memory) Numbers All in binaray – can be converted to octal, hex Characters ASCII – 1-byte/char Unicode – 2-byte/char Unicode-table.com/en.
A First Program CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington Credits: a significant part of.
Guide to Assignment 3 and 4 Programming Tasks 1 CSE 2312 Computer Organization and Assembly Language Programming Vassilis Athitsos University of Texas.
Arrays and Strings in Assembly
More on Assembly 1 CSE 2312 Computer Organization and Assembly Language Programming Vassilis Athitsos University of Texas at Arlington.
Strings CSE 1310 – Introduction to Computers and Programming Alexandra Stefan University of Texas at Arlington 1.
INTRODUCTION TO COMPUTER PROGRAMMING(IT-303) Basics.
Programming in Arduino Materials:Arduino Board Casperelectronics Pre Pres. Notes Photos from workshop?
INTRODUCTION TO PROGRAMING System Development Mansoura October 2015.
Software Engineering Algorithms, Compilers, & Lifecycle.
Big-Endians Little-Endians and Bi-Endians
CSCI-235 Micro-Computer Applications
Chapter 4 – Fundamental Data Types
System Programming and administration
Slide design: Dr. Mark L. Hornick
Guide To UNIX Using Linux Third Edition
Chapter 1 Data Storage.
Binary Files.
Slide design: Dr. Mark L. Hornick
Portability CPSC 315 – Programming Studio
Presenting information as bit patterns
Homework Applied for cs240? (If not, keep at it!) 8/10 Done with HW1?
Homework Reading Programming Assignments Finish K&R Chapter 1
Learning Intention I will learn how computers store text.
Python Basics with Jupyter Notebook
Presentation transcript:

Guide to Assignment 3 Programming Tasks 1 CSE 2312 Computer Organization and Assembly Language Programming Vassilis Athitsos University of Texas at Arlington

Task 1 Goal: convert a data file from one endian format to the other. Program flow: – Open input and output files. – While there is input data to be processed: Read the next record from the input file. Convert the record to the other endian format. Save the record to the output file. – Close input and output files. 2

Task 1 Goal: convert a data file from one endian format to the other. Program flow: – Open input and output files. – While there is input data to be processed: Read the next record from the input file. Convert the record to the other endian format. Save the record to the output file. – Close input and output files. If you use task1.c, you just have to write the function that converts the record and saves it to the output file. 3

Converting the Record to the Other Endian Format. You need to reorder the bytes of each integer in the record. Pseudocode for reordering the bytes of the integer: – Convert the integer into an array of chars. Use provided function integer_to_characters. – Reverse the order of the chars in that array. – Convert the array of chars back to an integer. Use provided function characters_to_integer. Then, you need to write the converted record on the output file. – Use provided function save_record. 4

Task 1 Sample Output (1) Run on an Intel machine (little endian):./a.out 0 test1_little.bin test2_big.bin read: Record: age = 56, name = john smith, department = 6 read: Record: age = 46, name = mary jones, department = 12 read: Record: age = 36, name = tim davis, department = 5 read: Record: age = 26, name = pam clark, department = 10 5

Task 1 Sample Output (2) Run on an Intel machine (little endian):./a.out 0 test2_big.bin out2_little.bin read: Record: age = , name = john smith, department = read: Record: age = , name = mary jones, department = read: Record: age = , name = tim davis, department = read: Record: age = , name = pam clark, department = Since the machine is little endian and the input data is big endian, the printout is nonsense. 6

The diff Command Suppose that you have run this command:./a.out 0 test1_little.bin test2_big.bin How can you make sure that your output (test2_big.bin) is identical to test1_big.bin? Answer: use the diff command on omega. diff test1_big.bin test2_big.bin 7

Task 2 Goal: do parity-bit encoding/decoding of a file. Program flow: – Open input and output files. – While there is input data to be processed: Read the next word W1 from the input file. If (number == 0) convert W1 from original word to codeword W2. If (number == 1): – convert W1 from codeword to original word W2. – print out a message if an error was detected. Save W2 to the output file. – Close input and output files. 8

Task 2 Goal: do parity-bit encoding/decoding of a file. Program flow: – Open input and output files. – While there is input data to be processed: Read the next word W1 from the input file. If (number == 0) convert W1 from original word to codeword W2. If (number == 1): – convert W1 from codeword to original word W2. – print out a message if an error was detected. Save W2 to the output file. – Close input and output files. If you use task2.c, you just have to write the functions that convert between original words and codewords. 9

Task 2 Files Task 2 works with bit patterns. In principle, the input and output files could be binary. Problem: difficult to view and edit (for debugging). Solution: use text files. – Bit 0 is represented as character '0'. – Bit 1 is represented as character '1'. 10

Task 2 Unencoded File (in1.txt) This binary pattern contains the 7-bit ASCII codes for: "The kangaroo is an animal that lives in Australia." 11

Task 2 Encoded File (coded1.txt) This binary pattern is the parity-bit encoding for: "The kangaroo is an animal that lives in Australia." 12

Task 2 - Sample Output (1) Encoding:./a.out 0 in1.txt out1.txt Start of translation: The kangaroo is an animal that lives in Australia. End of translation 13

Task 2 - Sample Output (2) Decoding (no errors found):./a.out 1 parity1.txt out2.txt Start of translation: The kangaroo is an animal that lives in Australia. End of translation 14

Task 2 - Sample Output (3) Decoding (errors found): 1 parity2.txt out2.txt error detected at word 0 error detected at word 8 error detected at word 16 error detected at word 24 error detected at word 32 error detected at word 48 Start of translation: he kangAroo is qn animad that lmves in Australi`. End of translation 15

Practice Question 1 Goal: do encoding/decoding of a file using an error correction code. It is specified as a text file, that the program reads. Example: code1.txt: – 3 is the number of bits in each original word. – 6 is the number of bits in each codeword. – 000 gets mapped to – 001 gets mapped to – and so on

Practice Question 1 Program flow: – Read code. – Open input and output files. – While there is input data to be processed: Read the next word W1 from the input file. If (number == 0) convert W1 from original word to codeword W2. If (number == 1): – convert W1 from codeword to original word W2. – print out a message if an error was corrected or detected. Save W2 to the output file. – Close input and output files. In general_codes.c, you just have to write the functions that convert between original words and codewords. 17

Practice Question 1: Code Struct This is the datatype that we use to store a code. struct code_struct { int m; // number of bits in original word int n; // number of bits in codeword columns. char ** original; // original words char ** codebook; // legal codewords }; 18

Practice Question 1: Encoding Logic Let W1 be the original word. Find the index K of W1 among the original words in the code book. Return the codeword stored at index K among the codewords. 19

Practice Question 1: Decoding Logic Let W1 be the codeword. Find the index K of the legal codeword L most similar to W1, among all legal codewords. – If L == W1, no errors. – If L != W1: If unique L, error detected and corrected. If multiple legal codewords were as similar to W1 as L was, error detected but not corrected. Return the original word stored at index K among the original words in the code book. 20