Assignment1
Greatest Common Divisor Write the recursive implementation of Euclid’s algorithm for finding the greatest common divisor (GCD) of two integers. Descriptions of this algorithm are accessible in algebra books and on Web. (Note: A norecursive version of GCD problem was given in the programming exercises. Write a test program that calls your GCD process five times, by using the following pairs of integers: (5,20), (24,18), (11,7), (432,226), (26,13). After each procedure call, display the GCD.
Assignment2
. Str_concat Procedure
Write the process named Str_concat which concatenates a source string to end of a target string. Sufficient space should exist in the target string to accommodate the newest characters. Pass pointers to the source and target strings. Here is a sample call:
.data
targetStr BYTE "ABCDE",10 DUP(0)
sourceStr BYTE "FGH",0
.code
INVOKE Str_concat, ADDR targetStr, ADDR sourceStr
Assignment3
mWritestringAttr Macro
Generate a macro which writes a null-terminated string to console with a given text colour. The macro parameters must consist of the string name and the color. Hint: Call SetTextColor from the book’s link library. Write a program which tests your macro with several strings in different colors. Sample call:
.data
myStringdb "Here is my string",0
.code
mWritestringmyString, white
File Allocation Table (FAT) The FAT12, FAT16, and FAT32 file systems use a table called the file allocation table (FAT) to continue the track of each file’s location on the disk. The FAT maps the disk clusters, showing their ownership by specific files. Each entry corresponds to a cluster number, and each cluster holds one or more sectors. In other terms, the 10th FAT entry identifies the 10th cluster on the disk, the 11th entry identifies the 11th cluster, and so on. Each file is represented in the FAT as a linked list, called a cluster chain . Each FAT entry contains an integer that identifies the next entry. Occupies clusters 1, 2, 3, 4, 8, 9, and 10. File2 occupies clusters 5, 6, 7, 11, and 12. The eoc( end of chain ) marker in the last FAT entry for a file is a predefined integer value marking the final cluster in the chain.
When a file is created, the operating system looks for the first available cluster entry in FAT. Gaps occur when not enough contiguous clusters are available to hold the entire file. In the preceding diagram, this happened to both File1 and File2. When a file is modified and saved back to disk, its cluster chain often becomes rising fragmented. If many files become fragmented, the disk’s performance begins to degrade because the read/write heads must jump between different tracks to locate all of a file’s clusters. Most operating systems supply a built-in disk defragmentation utility. Figure 15–14 Example: Two Cluster Chains. File1: starting cluster number 1, size 7 clusters 2348 12 9 10 eoc 3456 7 8 File2: starting cluster number 5, size 9 10 1112 13 14 15 16 5 clusters 6711 12 3456 7 8 15.3.4 Section Review 12 eoc 9 10 1112 13 14 15 16
Assignment4
String Input/Output
Write the program which inputs the following detail from the user, using the Win32 ReadConsole function: first name, last name, age, phone number. Redisplay the same detail with labels and attractive formatting, by using the Win32 WriteConsole function. Don’t use any procedures from the Irvine32 library.