Programming the Microprocessor

38
Programming the Microprocessor A Course in Microprocessor Electrical Engineering Dept. University of Indonesia

description

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. - PowerPoint PPT Presentation

Transcript of Programming the Microprocessor

Page 1: Programming the Microprocessor

Programming the Microprocessor

A Course in Microprocessor

Electrical Engineering Dept.

University of Indonesia

Page 2: Programming the Microprocessor

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

Page 3: Programming the Microprocessor

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)

Page 4: Programming the Microprocessor

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

Page 5: Programming the Microprocessor

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

Page 6: Programming the Microprocessor

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

Page 7: Programming the Microprocessor

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

Page 8: Programming the Microprocessor

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

Page 9: Programming the Microprocessor

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

Page 10: Programming the Microprocessor

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

Page 11: Programming the Microprocessor

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)

Page 12: Programming the Microprocessor

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

Page 13: Programming the Microprocessor

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)

Page 14: Programming the Microprocessor

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)

Page 15: Programming the Microprocessor

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

Page 16: Programming the Microprocessor
Page 17: Programming the Microprocessor
Page 18: Programming the Microprocessor
Page 19: Programming the Microprocessor
Page 20: Programming the Microprocessor
Page 21: Programming the Microprocessor
Page 22: Programming the Microprocessor
Page 23: Programming the Microprocessor
Page 24: Programming the Microprocessor
Page 25: Programming the Microprocessor
Page 26: Programming the Microprocessor
Page 27: Programming the Microprocessor
Page 28: Programming the Microprocessor
Page 29: Programming the Microprocessor
Page 30: Programming the Microprocessor
Page 31: Programming the Microprocessor
Page 32: Programming the Microprocessor
Page 33: Programming the Microprocessor
Page 34: Programming the Microprocessor
Page 35: Programming the Microprocessor
Page 36: Programming the Microprocessor
Page 37: Programming the Microprocessor
Page 38: Programming the Microprocessor