380 likes | 522 Views
Programming the Microprocessor. A Course in Microprocessor Electrical Engineering Dept. University of Indonesia. Data Conversions. Describes conversions between binary and ASCII Binary data are removed from a register or memory and converted to ASCII for the video display.
E N D
Programming the Microprocessor A Course in Microprocessor Electrical Engineering Dept. University of Indonesia
Data Conversions • Describes conversions between binary and ASCII • Binary data are removed from a register or memory and converted to ASCII for the video display
Data Conversions (cont’d) • Converting from Binary to ASCII • Conversion from binary to ASCII is accomplished in two ways : • by the AAM instruction if the number is less than 100 or • by a series of decimal divisions (devide by 10)
Data Conversions (cont’d) • The algorithm for converting from binary to ASCII code is : • Divide by the 10 and save the remainder on the stack as a significant BCD Digit • Repeat step 1 until the quotient is a 0 • Retrieve each remainder and add a 30H to convert to ASCII before displaying or printing • Example 7-27 illustrates a program that uses the procedure DISP that processes the binary value in AL (0-99) and display it on the video screen as decimal
Data Conversions (cont’d) • Converting from ASCII to Binary • The algorithm for converting from ASCII to binary is : • Begin with a binary result of 0 • Subtract 30H from the character typed on the keyboard to convert it to BCD • Multiply the result by 10 and add the new BCD digit • Repeat steps 2 and 3 until the character typed is not an ASCII-coded number • Example 7-29 illustrates a procedure (READN) used in a program that implements this algoritm
Data Conversions (cont’d) • Displaying and Reading Hexadecimal Data • Reading Hexadecimal Data • see Example 7-30 • Displaying Hexadecimal Data • see Example 7-31 • Using Lookup Tables for Data Conversions • A lookup table is formed in the memory as a list of data that is referenced by a procedure to perform conversions • is used XLAT instruction
Data Conversions (cont’d) • Converting from BCD to 7-segment Code • Example 7-32 illustrates a lookup table that contains the 7-segment codes for the numbers 0 to 9 • Using a Lookup Table to Access ASCII Data • Example 7-33 shows a table that references ASCII-coded character strings located in the code segment
Disk Files • Data are found stored on the disk in the form of files • The disk is organized in four main parts : • the boot sector • the file allocation table (FAT) • the root directory • the data storage • Disk Organization • Fig. 7-2 illustrates the organization of sectors and tracks on the surface of the disk • Fig. 7-3 shows the organization of data on a disk
Disk Files (cont’d) • Files are usually accessed through DOS INT 21H function calls • There are two ways to accesse a file using INT 21H : • uses a file control block • uses a file handle • Sequential File Access • All DOS files are sequential files
Disk Files(cont’d) • File Creation • A file is created by the INT 21 H function call number 3CH • The file name must be stored at a location addressed by DS:DX before calling the function • CX must contain the attribute of the file (or subdirectory) created • An ASCII-Z string is a character string that ends with a 00H or null character • Example 7-37 lists a short procedure that creates the new file on the disk • Table 7-5 lists and defines the attribute bit positions
Disk Files(cont’d) • Writing to a File • Before writing to a file, the file must have been created or opened • The file handle is used to refer to the file whenever data are written • Function number 40H is used to write data to an opened or newly created file. In addition to loading a 40H into AH, we must also load BX = the file handle, CX = the number of bytes to be written, and DS:DX = the address of the area to be written to the disk ( see Example 7-38 and 7-39)
Disk Files(cont’d) • The File Pointer • It is a 32-bit number that addresses any byte in a file • Once a file is opened, the file pointer can be changed with the move file pointer function number 42H • A file pointer can be moved : • from the start of the file (AL=00H) • from the current location (AL=01H) • from the end of the file (AL=02H) • The distance moved by the file pointer is specified by registers CX and DX
Disk Files(cont’d) • Register BX must contain the file handle before using function 42H to move the file pointer • Example 7-40 shows a procedure that opens a file, moves the file pointer to the end of the file, writes 256 bytes of data, and then closes the file • Fig. 7-5 shows how this is accomplished by creating a second file (see Example 7-41) • Random Access Files • Creating a Random Access File (see Example 7-42) • Reading and Writing a Record (see Example 7-43)
Example Programs • Calculator Program • This program demonstrates how data conversion plays an important part in many application programs (see Example 7-44) • Numeric Sort Program • Fig. 7-6 shows five numbers that are sorted with a bubble sort • Example 7-45 illustrates a program that accepts 10 numbers from the keyboard (0-65535)
Interrupt Hooks • Hooks are used to tap into or intercept the interrupt structure of the microprocessor • a special keystroke, called a hot key, can be detected when we hook into the keyboard interrupt • Whenever the hot-key is typed, a terminate and stay resident (TSR) program that performs a special task, can be accessed • see Example 7-48