SlideShare a Scribd company logo
1 of 54
Download to read offline
Laboratory Activity 1
Name:_______________________________ Time: 2.5 hours
Introduction to Assembly Language Programming and Tools
Objectives:
This activity will familiarize students with Assembly Language programming and the use
of the tools that will be needed throughout the lab activity. This first activity will utilize the use of
Turbo Assembler (TASM). TASM related tools such as Text Editor (i.e. Notepad, WordPad),
Linker and Turbo Debugger will be introduced. Such tools are interactive means for writing,
linking and debugging Assembly Language programs.
Overview:
In general, programming of a microprocessor usually takes several iterations before the
right sequence of machine code instructions is written. The process, however, is facilitated
using a special program called an “Assembler”. The Assembler allows the user to write
alphanumeric instructions, mnemonics, called Assembly Language instructions. The Assembler,
in turn, generates the desired machine instructions from the Assembly Language instructions.
Assembly Language programming consists of the following steps:
Step Produces
1 Editing Source File
2 Assembling Object File
3 Linking Executable File
4 Executing Results
Assembling the program:
The assembler is used to convert the assembly language instructions to machine code.
It is used immediately after writing the Assembly Language program. The assembler starts by
checking the syntax, or validity of the structure, of each instruction in the source file. If any
errors are found, the assembler displays a report on these errors along with a brief explanation
of their nature. However, if the program does not contain any errors, the assembler produces an
object file that has the same name as the original file but with the “obj” extension.
Linking the program:
The linker is used to convert the object file to an executable file. The executable file is
the final set of machine code instructions that can directly be executed by the microprocessor. It
is different than the object file in the sense that it is self-contained and re-locatable. An object
file may represent one segment of a long program. This segment cannot operate by itself, and
1
must be integrated with other object files representing the rest of the program, in order to
produce the final self-contained executable file.
In addition to the executable file, the linker can also generate file called “map” file. This
file contains information about the start, end, and the length of the stack, code and data
segments. It also lists the entry point of the program.
Executing the program:
The executable file contains the machine language code. It can be loaded in the RAM
and be executed by the microprocessor simply by typing, from the DOS prompt, the name of the
file followed by the Carriage Return Key (Enter Key). If the program produces an output on the
screen, or a sequence of control signals to control a piece of hardware, the effect should be
noticed almost immediately. However, if the program manipulates data in memory, nothing
would seem to have happened as a result of executing the program.
Debugging the program:
The Debugger can also be used to find logical errors in the program. Even if a program
does not contain syntax errors, it may not produce the desired results after execution. Logical
errors may be found by tracing the action of the program. Once found, the source file should be
reedited to fix the problem, the re-assembled and relinked. A special program called the
“Debugger” is designed for that purpose.
The debugger allows the user to trace the action of the program by single stepping
through the program or executing the program up to a desired point, called break point. It also
allows the user to inspect or change the contents of the microprocessor internal register or the
contents of much memory location.
Lab Work:
A. Text Editor
1. You can use either Notepad or WordPad to encode the program.
2. Select NEW under the File menu to get an editor window for your program. Enter the
program. Save your program naming it with a .ASM suffix, e.g. LAB1.ASM
3. Make sure that you save the file where your TASM files are saved.
B. Turbo Assembler and Linker
1. Assume that your default drive is c:
2. Type the following command to assemble the program: tasm lab1
2
3. Type the command to link the program: tlink lab1
Note: If you receive an error message during the process of assembling and
linking, that means there is a problem with your program. Please make sure that
you copy the program code correctly.
C. Turbo Debugger
1. Use the following command to debug your program: td lab 1
2. Press F8 twice to execute the first two instructions.
3. Choose: View / CPU (to open the CPU window)
4. Execute the program by continuously pressing F8 and record the result on the
worksheet below. Record the result of your observation after each instruction is
executed in the following table:
 If the instruction is a mov, indicate which register or memory location change its contents
and its new contents in hexadecimal.
Instruction Description of result after the instruction was executed.
From Program 1:
mov ax
_________________________________________________________________
mov bx
_________________________________________________________________
mov cx
_________________________________________________________________
mov dx
_________________________________________________________________
mov al
_________________________________________________________________
mov ah
_________________________________________________________________
mov ax
_________________________________________________________________
From Program 2:
mov ax
_________________________________________________________________
mov ds
_________________________________________________________________
mov ax
_________________________________________________________________
3
mov bx
_________________________________________________________________
mov cx
_________________________________________________________________
add ax
_________________________________________________________________
dec cx
_________________________________________________________________
mov dx
_________________________________________________________________
mov ax
_________________________________________________________________
For program #2: Change the line:
MULT1 EQU 25 by MULT1 EQU 25H
And run the program again. Record the result below:
mov ax
_________________________________________________________________
mov ds
_________________________________________________________________
mov ax
_________________________________________________________________
mov bx
_________________________________________________________________
mov cx
_________________________________________________________________
add ax
_________________________________________________________________
dec cx
_________________________________________________________________
mov dx
_________________________________________________________________
mov ax
_________________________________________________________________
1. What do you notice when you changed the value for MULT1?
2. Can you explain what the program does?
4
**********************************PROGRAM******************************************
Program #1: Lab1.ASM
.MODEL SMALL
.STACK 32
.CODE
START:
MOV AX,2000
MOV BX,2000H
MOV CX,10100110B
MOV DX,-4567
MOV AL,’A’
MOV AH,’a’
MOV AX,4C00H
INT 21H
END START
Program #2: Lab2.ASM
.MODEL SMALL
.STACK 32
.DATA
MULT1 EQU 25
MULT2 DW 5
.CODE
START:
MOX AX,@DATA
MOV DS,AX
MOX AX,00
MOV BX,MULT1
MOV CX,MULT2
MULT: ADD AX,BX
DEC CX
JNZ MULT
MOV DX,AX
MOV AX,4C00H
INT 21H
END START
5
Observation:
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
________________________________
Conclusion:
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
________________________________
6
Laboratory Activity 2
Name:_______________________________ Time: 2.5 hours
Input and Output
Introduction:
In this experiment, you will be introduced to the basic Input and Output (I/O) operations using
Assembly Language. You will use DOS Interrupt (INT 21H) function calls to access the
keyboard and video display. More details will also be given on the structure of an Assembly
Language program.
The following major points are discussed:
- Variable declaration using: DB, DW, DD
- Constant declaration using: EQU
- OFFSET operator
- INT 21H with the functions 1, 2, 8 and 9
Objective:
4. Demonstrate keyboard access using the DOS INT 21H function calls 01, 02 and 08.
5. Demonstrate string display using the DOS INT 21H function call 09.
6. Show the difference between keyboard read functions, with echo and without echo.
I/O DOS Function Calls:
Table 2.1 summarizes the main I/O functions. These functions are mainly used to read a
character or a string from the keyboard, which could be an inout data to a program, and display
characters or strings, which could be results, or an output, of a program.
Function Input In Output In Effect
01H AH AL Read a character with echo on the screen
02H,06H AH, Character in
DL
No Output Display a character on the screen. Note:
Interrupted by CTRL+Break
08H AH AL Read character without echo
09H AH No Output Display a string terminated by a ‘$’ sign
0AH AH Offset in DX Read a string of characters from the
keyboard.
7
DOS Display Functions:
These are DOS functions 02 and 06 for a single character display, and 09 for a string display.
DOS Functions 02 and 06:
Both functions are identical, except that function 02 can be interrupted by a control break (Ctrl-
Break), while function 06 cannot. To display a single character ASCII character at the current
cursor position use the following sequence of instructions:
MOV AH,06H ;(Or: MOV AH,02H)
MOV DL,Character Code
INT 21H
The character Code may be ASCII code of the character taken from the ASCII table or the
character itself written between quotes.
The following displays number 2 using its ASCII code:
MOV AH,06H
MOV DL,32H
INT 21H
This code also displays 2:
MOV AH,06H
MOV DL,’2”
INT 21H
DOS Function 09:
This function is used to display a string of characters ended with a ‘$’ sign. The following code
displays the string MESSAGE defined as:
MESSAGE DB ‘This is the Message to be displayed’,’$’
.CODE
MOV DX, OFFSET MESSAGE
MOV AH,09H
INT 21H
DOS Input Functions:
These include reading a single character, with or without echo, functions 01 and 08, and reading
a whole string.
8
Function 01H and 09H INT 21H:
To read single character and have it echoed9displayed) on the screen, use the following code:
MOV AH,01H
INT 21H ; AL contains now the ASCII code of the character read from the
keyboard
If the character is to be read without echo, such as reading a password, use the following code:
MOV AH,08H
INT 21H ;AL contains now the ASCII code of the character read
Reading a String:
Reading a string is accomplished by Function 0AH INT 21h. DOS function 0AH will accept a
string of text entered at the keyboard and copy that string into a memory buffer. DOS 0AH is
invoked with DS:DX pointing to an input buffer, whose size should be at least three bytes longer
than the largest input string anticipated.
Before invoking DOS function 0AH, you must set the first byte of the buffer with the number of
character spaces in the buffer. After returning from DOS function 0AH, the second byte of the
buffer will contain a value giving the number of characters actually read from the keyboard.
Buffer
Length
Actual
Length
Figure 2.1: Keyboard buffer structure
Function 0AH Read from Keyboard
Entry AH=0AH; DX=address of keyboard input buffer.
First byte of buffer contains the size of the buffer 9up to 255)
Exit Second byte of buffer contains the number of characters read.
Reading operating continues until buffer full, or a carriage return (CR=0DH)
is typed.
Table 2.2: Functions 0AH of DOS interrupt
Example:
Below is an example on the use of function 0AH, when the user enters the word ‘hello”.
Input:
08 XX XX XX XX XX XX XX XX XX
9
Output:
08 05 68 65 6C 6C 6F 0D XX XX
Lab Work:
A. Assemble and Link program 1 ( located at the latter portion of the worksheet).
B. Type the program’s name at the prompt to run the program.
C. What does the program do? Notice how the program handles the three different
characters.
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
__________________________
D. Assemble, Link and Run program 2.
E. Replace the line: MOV DX, OFFSET MESSAGE
By: LEA DX, MESSAGE
Then repeat step 4. What do you notice?
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
10
____________________________________________________________________________
__________________________
F. Use the Turbo Debugger to check the effects of the instruction LEA and OFFSET
operator. Write your detailed observation below:
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
__________________________
G. Assemble, Link and Run program 3
H. After running the program, notice here the effect of the characters 0DH and 0AH at the
end of the line containing: MESSAGE. What is your conclusion?
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
__________________________
I. Notice also the effects of the function calls 01H, 08H.
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
11
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
__________________________
J. As you use the Turbo Debugger, provide a brief description of result after the execution
of the instruction per line. You can put the brief description at the program section below.
Lab Seatwork:
Write an assembly language program that prompts you to enter a password of 3 characters in
length. The password should not be echoed to the screen. The program then displays your
name and ID number on the screen once the correct password was entered.
*****************************PROGRAM**********************************************
Program 1: This program displays the characters A B C, using INT 21H function 02.
.MODEL SMALL
.DATA
X EQU ‘B’
Y DB 43H
.STACK 200
.CODE
START:
MOV AX,@DATA
MOV DS,AX
MOV AH,02
MOV DL,’A’
INT 21H
MOV DL,X
12
INT 21H
MOV DL,Y
INT 21H
MOV AX,4C00H
INT 21H
END START
Program 2: This program displays a string terminated by a $ sign using INT 21H function 09H.
.MODEL SMALL
.DATA
MESSAGE DB’This is the message to be displayed’,’$’
.STACK 200
.CODE
START:
MOV AX,@DATA
MOV DS,AX
MOV DX, OFFSET MESSAGE
MOV AH,09H
INT 21H
MOV AX,4C00H
INT 21H
END START
*************************************************************************************
Program 3:
;Character input with echo INT 21H, function call 01H
;Character input without echo INT 21H, function call 08H
.MODEL SMALL
.DATA
13
MESSAGE DB’ENTER A CHARACTER:’,’$’
MESSAGE2 DB’THE CHARACTER YOU TYPED IS: ‘,0DH,0AH,’$’
.STACK 200
.CODE
START:
MOV AX,@DATA
MOV DS,AX
LEA DX,MESSAGE
MOV AH,09H
INT 21H
MOV AH,02
MOV DL,AL
INT 21H
LEA DX,MESSAGE
MOV AH,09H
INT 21H
MOV AH,08H
INT 21H
MOV BL,AL
LEA DX,MESSAGE2
MOV AH,09H
INT 21H
MOV AH,02
MOV DL,BL
INT 21H
MOV AH,4CH
INT 21H
END START
14
Observation:
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
________________________________
Conclusion:
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
________________________________
15
Laboratory Activity 3
Name:_______________________________ Time: 2.5 hours
Segmentation and Addressing Modes
Introduction:
In this experiment, you will be introduced to physical segmentation of the memory and the
logical segmentation of programs. You will also deal with the different addressing modes, and
learn how to calculate the physical and offset addresses.
Objectives:
- Addressing modes in the 8086 processor.
- Segmentation: Physical Segments and Logical Segments.
Addressing Modes:
The following table summarizes all addressing modes used by the 8086 processor.
Structure of an Assembly Language Program:
An Assembly Language program is written according to the following structure and includes the
following assembler directives:
16
Each of the segments is called a logical segment. Depending on the memory, the code and data
segments may be in the same of different physical segments according to Table 3.3.
17
Stack Directive:
7. Directive is .stack for stack segment
8. Should be declared even if program itself doesn’t use stack needed for subroutine
calling (return address) and possibly passing parameters.
9. May be needed to temporarily save registers or variable content
10. Will be needed for interrupt handling while program is running
Memory Allocation:
11. Directive is .data for data segment
12. All variables must be declared, and memory space for each allocated.
13. Data definition directive can be followed by a single value, or a list of values separated
by commas
14. Different data definition directives for different size types of memory
5. DB – define byte (8-bits)
6. DW – define word (16-bits)
7. DD – define double word (32-bits)
8. DQ – define quad word (64-bits)
Code Segment:
15. Directive is .code for code segment
16. The ‘program’ resides here
End of Program:
17. Directive is End
18. Tells assembler that this is the end of the program
Note:
The sequence of instructions at the beginning of a program used to assign a data segment:
MOV AX,@DATA
MOV DS,AX
18
May be replaced by the following directive:
.STARTUP
Which assigns both DATA and CODE segments, and hence no warning will be issued by the
assembler. However, it should be noted that the program would start at address CS:0017h. The
Startup directive occupies the bytes CS:0000 to CS:0017.
Identically, the sequence used to terminate and exit to DOS can be replaced by the .EXIT
directive, which has exactly the same effect.
Laboratory Work:
K. Assemble, Link and Run program 1.
L. Use Turbo Debugger to fill in the table associated with program 3.1.
M. Calculate both the effective and physical address of each instruction. Put the results on
the given table.
N. Assemble, Link and Run program 2.
O. Fill in Table 2, associated with program 2, in which you specify only the addressing
mode for both source and destination, for each instruction.
P. Show all tables to the instructor.
Q. Submit all your work at the end of the lab session.
Laboratory Assignment:
Write a program that prompts the user to enter a string, in capital letters, of a maximum length
of 20 characters. Read the string in capital letters and convert it to small letters. Then display
the new string.
Note:
To convert a capital letter to small one, use the following instruction:
;Read character
MOV AL, character_read
ADD AL,20H
;Display character in AL register
Use the following to loop through the string you just entered.
MOV CX,Number_of_bytes_read
AGAIN: Start loop here
;Convert to small letters.
19
LOOP again
**************************************PROGRAMS*************************************
;This program displays a string terminated by a $ using INT 21H function 09H.
Program 3.1
.MODEL SMALL
.STACK 200
.DATA
MESSAGE DB ‘This is the message to be displayed:’,’$’
MESSAGE2 DB ‘The message you just entered:;’,’$’
BUF DB 10 ;Number of characters to be read
DB 10 DUP(?);Reserve 10 bytes for string
.CODE
START:
MOV AX,@DATA
MOV DS,AX
LEA DX,MESSAGE
MOV AH,09H
INT 21H
MOV AH,0AH
MOVDX,OFFSET BUF
INT 21H
LEA DX,MESSAGE2
MOV AH,09H
INT 21H
LEA DX,BUF
MOV AH,09H
INT 21H
MOV AX, 4C00H
INT 21H
END START
20
Program 3.2
;This program displays a message and reads a new message from the keyboard.
.MODEL SMALL
.STACK 200
.DATA
CRLF DB 0DH,0AH,’$’
PROMPT DB ‘Enter a name of max. length 30 char.:’,0Dh,0Ah,’$’
STRING1 DB ‘Mr. ‘,’$’
STRING2 DB ‘ studies 8086 programming.’,’$’
;Allocate 32 bytes for BUFFER, and put the value 31 in the second byte.
BUFFER DB 31,32 DUP(?)
.CODE
START:
.STARTUP
LEA DX,PROMPT
MOV AH,09H
INT 21H
MOV AH,0AH
LEA DX,BUFFER
INT 21H
LEA DX,CRLF
MOV AH,09H
INT 21H
LEA DX,STRING1
MOV AH,09H
INT 21H
MOV AH,09H
MOV BH,00H
MOV BL,BUFFER[1]
MOV BUFFER[BX+2],’$’
LEA DX,BUFFER[2]
INT 21H
LEA DX,STRING2
MOV AH,09H
INT 21H
21
LEA DX,CRLF
MOV AH,09H
INT 21H
MOV AH,02H
MOV DL,BUFFER[1]
ADD DL,30H
INT 21H
MOV AX,4C00H
INT 21H
END START
*************************************************************************************
For Program 3.1
22
For Program 3.2
23
Observation:
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
________________________________
Conclusion:
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
________________________________
24
Laboratory Activity 4
Name:_______________________________ Time: 2.5 hours
Indexing and Data Manipulation
Introduction:
In this experiment, you will be introduced to data transfer and arithmetic instructions. You will
also deal with indexing and array manipulation.
Objectives:
1. Basic arithmetic instructions
2. Use of the ASCII table
3. Manipulation of arrays
ASCII Code Table:
The ASCII table is a double entry table, which contains all alphanumeric characters and
symbols. Each symbol, or character, has its own ASCII code. This code can either be in decimal
or hexadecimal format. The code of a given character is found by concatenating the column
number with the row number, if the code is to be expressed in hexadecimal. The row number is
to be the least significant. For the same code to be expressed in decimal, the row number is
added to the column number.
As an example, the symbol ‘$’ is at the intersection of row 4 and column 2, therefore, its ASCII
code is 24H. The decimal equivalent of this code can be found by adding 4 to 32 which yields
36.
The following tables show the ASCII codes and examples on the use of the ASCII table and
how to calculate the ASCII codes for different characters and symbols.
25
26
Note on the use of arrays:
The DB and DW directives are respectively used to declare a variable of size byte or word. The
following declaration defines variable X of size byte and assigns it the value 10H.
X DB 10H
Identically, the following will define a variable of size word, and assigns it the value 13EFH.
Y DW 13EFH
The DUP directive may be used to reserve more than one consecutive data item and initialize
reserved items to the same value. For example, the instruction:
ByteArray DB 100 DUP(0)
Instructs the assembler to reserve an array of 100 bytes and initializes each byte to the value
zero. If the “0” in the above declaration is replaced with “?”, the assembler will not initialize the
bytes of the array to any value.
To access the different elements of an array, we use one of the following addressing modes:
- Based addressing mode
- Indexed addressing mode
- Based – Indexed addressing mode
The Based – Indexed Addressing mode may be used to access a two-dimensional array. Here
are examples of each case.
Array1 DB 0,1,2,3,4,5,6,7,8,9
Array2 DB 10 DUP(0)
Array DB 11,12,13,21,22,23,31,32,33
RowSize EQU 3
Based addressing mode:
MOV BX,OFFSET Array1 ;Address Array1
MOV AL,[BX+4] ;Access 5th
element of array1
Indexed addressing mode:
MOV DI,OFFSET Array2 ;Address Array2
27
MOV [DI+6], AL ;Copy to 7th
element of Array2
MOV SI,3
MOV Array2[SI],AL ;Copy to 4th
element of Array2
Based-Indexed addressing mode:
MOV BX,OFFSET Array3 ;Address Array3
MOV SI,1*RowSize ;Beginning of 2nd
row
MOV DI,2*RowSize ;Beginning of 3rd
row
MOV AL,[BX+SI+1] ;Access 2nd
element of 2nd
row
MOV [BX+DI+2},AL ;Access 3rd
element of 3rd
row
Remark:
Notice that row R, has index (R-1), and element n has index (n-1).
Laboratory Work:
1. Assemble, Link and Run Program 1.
2. How many digits can you enter each time? Explain this.
3. What happens when the sum exceeds 9? Explain this.
4. Assemble, Link and Run Program 2. Dress a table and show some inputs and outputs.
5. Modify program 1 so that it adds two numbers of two digits each. Use only registers and
make sure to take care of the carry when adding two most significant digits. Call this
program 3.
6. Repeat step 4 with program 3.
7. Show all your work to the instructor.
8. Submit all your work at the end of the class.
28
29
30
Observation:
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
______________
Conclusion:
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
_______
31
Laboratory Activity 5
Name:_______________________________ Time: 2.5 hours
Arithmetic and Logical Instructions
Introduction:
In this experiment, you will be introduced to the logic instructions of the 8086 family of
processors. You will also deal with the conversion of numbers from one radix to another.
Objectives:
9. Logic Functions
10. Base conversion
Arithmetic Instructions:
The following table summarizes the arithmetic instructions used in the 8086 family
microprocessor. It also shows the effect of each instruction, a brief example, and the flags
affected by the instruction. The “*” in the table means that the corresponding flag may change
as a result of executing the instruction. The “-“ means that the corresponding flag is not affected
by the instruction, whereas the “?” means hat the flag is undefined after executing the
instruction.
32
Notes:
The DAA (Decimal Adjust after Addition) instruction allows addition of numbers represented in
8-bit packed BCD code. It is used immediately after normal addition instruction operating on
BCD codes. This instruction assumes the AL register as the source and the destination, and
hence, it requires no operand. The effect of DAS (Decimal Adjust after Subtraction) instruction is
similar to that of DAA, except the fact that it is used after performing subtraction.
CBW and CWD are two instructions used to facilitate division of 8 and 16 bit signed numbers.
Since division requires a double-width dividend, CBW converts an 8-bit signed number(in AL),
to a word, where the MSB of AL register is copied to AH register. Similarly, CWD converts a 16-
bit signed number to a 32-bit signed number (DX,AX).
Logical Instructions:
Logical Instructions
Logic shift and rotate instructions are called bit manipulation operations. These operations are
designed for low-level operations and are commonly used for low-level control of input/output
devices. The list of the logic operations of the 8-86 is given in the Table below along with
examples, and the effect of these operations on the flags. The “*” in the table means that the
corresponding flag may change as a result of executing the instruction. The “-” means that the
corresponding flag is not affected by the instruction, whereas the “?” means that the flag is
undefined after executing the instruction.
The logic operations are the software analogy of logic gates. They are commonly used to
separate a bit or a group of bits in a register or in a memory location, for the purpose of testing,
33
resetting or complementing. For example, if b is the value of a certain number. The related
effects of the basic operations on a single bt are indicated in the table below:
Byte manipulations for reading and displaying purposes:
1/To put two decimal digits into the same byte use the following:
If we want to perform addition:
; If AL contains the first number in BCD format
; and CL contains the second number in BCD format
ADD AL,CL
DAA ; Decimal adjust
; New result in AL in BCD format
MOV CL,AL
; Number in CL register. See next how to display it as decimal number.
2/To display a number in BCD format use the following:
34
;The number is in the CL register:
MOV AL,CL ; Move CL to AL
XOR AH,AH ; Clear AH
MOV BL,10000B
DIV BL ; Shift AX 4 bits to the right
AND AL,0FH ; Clear 4 high nibbles of AL
ADD AL,30H ; Convert to character
;Now Display AL as high digit first
MOV AL,CL ;Read number again
AND AL,0FH ;Clear 4 high nibbles of AL
ADD AL,30H ; Convert to character
;Now Display AL as low digit second
Displaying Data in any Number Base r:
The basic idea behind displaying data in any number base is division. If a binary number is
divided by 10, and the remainder of the division is saved as a significant digit in the result, the
remainder must be a number between zero and nine. On the other hand, if a number is divided
by the radix r, the remainder must be a number between zero and (r-1). Because of this, the
resultant remainder will be a different number base than the input which is base 2. To convert
from binary to any other base, use the following algorithm.
Algorithm:
4. Divide the number to be converted by the desired radix (number base r).
5. Save the remainder as a significant digit of the result.
6. Repeat steps 1 and 2 until the resulting quotient is zero.
7. Display the remainders as digits of the result.
Note that the first remainder is the least significant digit, while the last remainder is
the most significant one.
Pre-Laboratory Work:
1. Study the program 5.2, and explain how base conversion is performed.
2. Write, assemble and link program 5.1. You will run it in the lab using Turbo Debugger.
3. Write, assemble, link and run program 5.2.
4. Modify the program so that it prompts the user for the radix and the number NUM to be
converted. Call the new program as Program 5.3.
5. Write a program that converts from decimal to hexadecimal. Name it as Program 5.4.
35
Laboratory Work:
- Use Turbo Debugger to trace program 5.1. Fill in table 5.3. Notice any
changes in the status flags and explain them.
- Run Program 5.2 and see what value is displayed.
- Change the value of the variable NUM and see the output value.
- Now change the value of Radix and see the value displayed.
- Write a program that prompts the user to enter two numbers of 4 digits each.
Convert these numbers to hexadecimal. Then calculate the sum, the
difference of the two numbers and finally displays the result in decimal
format. Name it program 5.5.
- Show all your work to the instructor.
- Submit all your work at the end of the lab session.
Fill in table 5.3 while running the above program using Turbo Debugger.
36
Observation:
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
______________
Conclusion:
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
37
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
_______
38
Laboratory Activity 6
Name:_______________________________ Time: 2.5 hours
Shift, Rotate and Jump Instructions
Introduction:
In this laboratory activity, you will be introduced to the shift and rotate instructions. You will also
practice how to control the flow of an assembly language program using the compare
instruction, the different jump instructions and the loop instructions.
Objectives:
8. Shift instructions
9. Rotate instructions
10. Compare instructions
11. Jump instructions
12. Loop instructions
The Shift Operations:
The shift operations are used to multiply or divide a number by another number that is a power
of 2 (i.e. 2n
or 2-n
. Multiplication by 2 is achieved by a one-bit left shift while division by 2 is
achieved by a one-bit right shift. The Shift Arithmetic Right (SAR) instruction, is used to
manipulate signed numbers. The regular Right Shift (SHR) of a signed number affects the sign
bit, which could cause numbers to change their sign. The SAR preserves the sign bit by filling
the vacated bits with the sign of the number. Shift Arithmetic Left (SAL) is identical in operation
to SAR.
The rotate operations are very similar to the shift operations, but bits are shifted out from one
end of a number and fed back into the other end to fill the vacated bits. They are provided to
facilitate the shift of long numbers (i.e. numbers of more than 16 bits). They are also used to
reposition a certain bit of a number into a desired bit-location. The rotate right or left instructions
through the carry flag (RCL an RCR) are similar to the regular rotate instructions (ROL and
ROR), but the carry flag is considered as a part of the number. Hence, before the rotate
operation, the carry flag bit is appended to the number as the least significant bit in the case of
RCL, or as the most significant bit in the case of RCR.
39
Compare Instruction:
The compare instruction is used to compare two numbers. At most one of these numbers may
reside in memory. The compare instruction subtracts its source operand from its destination
operand and sets the value of the status flags according to the subtraction result. The result of
the subtraction is not stored anywhere. The flags are set as indicated below:
40
Jump Instructions:
The jump instructions are used to transfer the flow of the process to the indicated operator.
When the jump address is within the same segment, the jump is called intra-segment jump.
When this address is outside the current segment, the jump is called inter-segment jump. An
overview of all jump instructions is given in Table 6.3. Table 6.4 lists the possible addressing
modes used with the jump instructions. Whereas Table 6.5 gives examples on the use of such
instructions.
41
The LOOP Instructions:
The LOOP instruction is a combination of a DEC and JNZ instructions. It causes execution to
branch to the address associated with the LOOP instruction. The branching occurs a number of
times equal to the number stored in the CX register. All LOOP instructions are summarized in
Table 6.6.
42
Like the conditional and unconditional jump instructions which can be used to simulate the IF-
THEN=Else structure of any programming language, the loop instructions can be used to
simulate the Repeat-Until and While-Do Loops. These are used as shown in the following table.
Pre-Laboratory Work:
- Complete program 6.1 according to the given guidelines.
- Check on some values and see if it is working properly.
- Comment on the program, trying to understand how conversion is done.
- Write program 6.2 and make sure it contains no errors.
- Do the modifications given in the guidelines. This will be program 6.3.
Laboratory Work:
11. Show program 6.1 and your comments to your instructor.
12. Run program 6.2 using Turbo Debugger.
13. See what the effect of such program on NUM1 is.
14. Run program 6.3 and see the effect on NUM1 after displaying NUM2.
15. Modify program 6.2 using program 6.1 such that you enter an 8-bit binary number from
the keyboard, and invert swap the high and the low nibbles of the number and finally
display it. Call this program 6.4.
43
16. Show all your work to the instructor and submit it at the end of the lab session.
44
45
46
Observation:
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
________________________________
Conclusion:
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
________________________________
47
Laboratory Activity 7
Name:_______________________________ Time: 2.5 hours
Subroutine Handling Instructions and Macros
Introduction:
In this laboratory activity, you will be introduced to subroutines and how to call them. You will
verify the exchange of date between a main program and a subroutine in the 8086 environment.
You will also use Macros, and as applications you will deal to a useful data representation: look-
up tables.
You will need some of the programs developed in previous experiments to rewrite them in a
more structured way.
Objectives:
- Procedures and Procedure Calls
- Parameter Passing through Memory, registers and the stack
- Use of Macros
- Look-up Tables
- Real-time clock reading
Macros:
Macro sequences relieve the programmer from retyping the same instructions. They allow you
to create your own pseudo language for instruction sequences that often appear in
programming. A macro sequence starts by the Macro directive and ends by an ENDM directive.
Associated with MACRO is the name of the macro and any parameters that are carried with the
macro to the instructions between MACRO and ENDM statements. Program 7.3 contains two
macros. A MACRO is declared and used as shown in the following example:
48
Macros can be saved in a separate file, to which a name such as “MACRO.INC” can be given.
This file can then be used as a library, and therefore can be included in the program using the
directive INCLUDE, in the following manner.
INCLUDE MACRO.INC
Provided that both, the program and the macro library are in the same directory. Alternatively
the path has to be specified as follows:
INCLUDE PathMACRO.NC
Labels local to a Macro:
When a MACRO contains labels, and the Macro is used more than once in a program, which is
usually the case, the assembler gives the following error: Label referenced more than once. To
avoid such an error, these labels should be made local to the MACRO, this is done using the
following:
DISPLAY MACRO STRING
Local Label1
…….
Label1
ENDM
The Stack:
The stack is a special segment in memory used to facilitate subroutine handling. The SS
register contains the Stack Segment number where the stack is stored. The “.STACK” directive
instructs the assembler to reserve a stack segment of a desired size. For example, to reserve a
stack segment of size 80 bytes, “.STACK 50” is used before the “.CODE” directive. In this case,
the “.STACK” directive initializes the Stack Pointer to 50H. If the “.STACK” directive is missing
from a program, the assembler issues the warning:”LINK:Warning L4021:no stack segment”.
The stack always starts at a high address and grows towards the beginning of the stack
segment at a lower address. When a program starts, the stack is empty and its size is zero. The
microprocessor tores data on the stack as needed, and uses the SP register to point to the last
item stored on the stack. The stack size dynamically changes as data is stored or retrieved
from the stack.
The stack handling instructions are summarized in Table 7.1. The PUSH instruction is used to
store the content of a 16-bit register, or memory location on the stack. It first decreases the
49
content of SP by two and then stores the data into two bytes on the top of the stack. The high
order byte of the data goes to the high addressed byte in the stack.
The PUSHF instruction is similar to the PUSH instruction, except that the PUSHF is used to
push the contents of the flag register onto the stack. The POP and POPF instructions have a
reverse action of the PUSH and PUSHF, respectively. The POP instruction retrieves a word
from the stack and then increases SP by two. The POPF has the same effect, except that the
word retrieved is saved to the flag register.
Subroutine calls:
A procedure is a reusable section of the software that is stored in memory once, but used as
often as necessary. The CALL instruction links to the procedure and the RET (return) instruction
returns from the procedure. The Stack stores the return address whenever a procedure us
called during the execution of a program. The CALL instruction pushes the address of the
instruction following the CALL (return address) onto the stack. The RET instruction removes an
address from the stack, so the program returns to the instruction following the CALL.
With the Assembler, there are specific ways for writing and storing procedures. A procedure
begins with the PROC directive and ends with the ENDP directive. Each directive appears with
the name of the procedure. The PROC directive is followed by the type of the procedure: NEAR
(intra-segment) or FAR (inter-segment).
Procedures that are to be used by all software (global) should be written as FAR procedures.
Procedures that are used by a given task (local) are normally defined as NEAR procedures.
50
The CALL instruction:
The Call instruction transfers the flow of the program to the procedure. The Call instruction
differs from the jump instruction in the sense that a Call saves a return address on the stack.
The RET instruction return control to the instruction that immediately follows the CALL. There
exist two types of calls: FAR and NEAR and two types of addressing modes used with calls,
Register and Indirect Memory modes.
Near CALL:
A near CALL is three bytes long, with the first byte containing the opcode, and the two
remaining bytes containing the displacement or distance of ±32K. When a Near Call executes, it
pushes the offset address of the next instruction on the stack. The offset address of the next
instruction appears in the IP register. After saving this address, it then adds the displacement
from bytes 2 and 3 to the IP to transfer control to the procedure. A variation of NEAR CALL
exists, CALLN, but should be avoided.
Far CALL:
The FAR CALL can call a procedure anywhere in the system memory. It is a five-byte
instruction that contains an opcode followed by the next value for the IP and CS registers. Bytes
2 and 3 contain the new contents of IP, while bytes 4 and 5 contain the new contents for CS.
The FAR CALL instruction places the contents of both IP and CS on the stack before jumping to
the address indicated by bytes 2 to 5 of the instruction. This allows a call to a procedure
anywhere in memory and return from that procedure. A variant of the FAR CALL is CALLF but
should be avoided.
CALLS with register operand:
CALLS can contain a register operand. An example is CALL BX, in which the content of IP is
pushed into the stack, and a jump is made to the offset address located in register BX, in the
current code segment. This type of CALL uses a 16-bit offset address stored in any 16-bit
register, except the segment registers.
Program 7.1 illustrates the use of the CALL register instruction to call a procedure that begins at
offset address DISP. The offset address DISP is placed into the BX register, then the CALL BX
instruction calls the procedure beginning at address DISP. This program displays “OK” on the
moment screen.
CALLs with Indirect Memory Address:
A CALL with an indirect memory address is useful when different subroutines need to be
chosen in a program. This selection process is often keyed with a number that addresses a
CALL address in a lookup table.
Program 7.2 shows three sequence subroutines referenced by Number 1,2 and 3 as read from
the keyboard. The calling sequence adjusts the value of AL and extends it to a 16-bit number
51
before adding it to the location of the lookup table. This references one of the three subroutines
using the CALL TABLE [BX] instruction. When this program executes, the letter A is displayed
when 1 is typed, B if 2 and C if 3 is tyoed.
The CALL instruction can also reference far pointers if the data in the table are defined as
double-word data with the DD directive, using the CALL FAR PTR[SI] or CALL TABLE[SI]
instructions. These instructions retrieve a 32-bit address from the data segment memory
location addressed by SI and use it as the address of a far procedure.
Parameter Passing:
To pass data (parameters) between the main program and the routines, data may be left in the
general-purpose registers. This method has the disadvantage of changing the contents of the
registers’ every time the subroutine is called. A more elegant way is to exchange data through
the stack, or through memory. The data to be passed to a subroutine is saved in the memory
before calling the subroutine. All the registers that need to be saved, and are used by the
subroutine, should also be saved and retrieved afterwards.
Reading the System Date: Function 2AH, INT 21H:
Function 2AH of Interrupt 21H is used to read the system date. It returns the DAY of the Week
in AL register, the year in CX register, the month in DH register and the day of the month n DL
register. Note that as indicated in Table 7.3, the returned values are in hexadecimal format,
which, in order to be displayed, need to be converted to decimal, as indicated in experiment 5.
52
Pre-Laboratory Work:
19. Write, assemble, link and run program 7.1 and 7.2. Try to understand how the differemy
routines are written and how they are called. See also how the different procedures pass
parameters between them.
20. Write, assemble, link and run program 7.3. See how Macros are used.
21. Rewrite program 6.1, from Activity 6, using Procedures and Macros. Call it program 7.4.
Laboratory Work:
9. Run programs 7.3 and 7.4 and show them to your instructor.
10. Modify program 6.3 from Activity 6, using Procedures and Macros. Call it program 7.5.
11. Program 7.4 reads a string and encrypts it. Complete the program and use Macros and
Procedures.
12. Modify program 7.4 so that it reads an encrypted string and converts it back to the
original one. Write this program using procedures and macros. Call it program 7.6.
53
Observation:
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
________________________________
Conclusion:
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
________________________________
54

More Related Content

What's hot

What's hot (20)

Huffman tree
Huffman tree Huffman tree
Huffman tree
 
Loaders
LoadersLoaders
Loaders
 
Assembly Language Lecture 4
Assembly Language Lecture 4Assembly Language Lecture 4
Assembly Language Lecture 4
 
Unit 2 assembly language programming
Unit 2   assembly language programmingUnit 2   assembly language programming
Unit 2 assembly language programming
 
Pass Structure of Assembler
Pass Structure of AssemblerPass Structure of Assembler
Pass Structure of Assembler
 
Inter Process Communication
Inter Process CommunicationInter Process Communication
Inter Process Communication
 
Chomsky classification of Language
Chomsky classification of LanguageChomsky classification of Language
Chomsky classification of Language
 
Memory management ppt
Memory management pptMemory management ppt
Memory management ppt
 
Protected mode memory addressing 8086
Protected mode memory addressing 8086Protected mode memory addressing 8086
Protected mode memory addressing 8086
 
Multiprocessor structures
Multiprocessor structuresMultiprocessor structures
Multiprocessor structures
 
Writing algorithms
Writing algorithmsWriting algorithms
Writing algorithms
 
Arrays and addressing modes
Arrays and addressing modesArrays and addressing modes
Arrays and addressing modes
 
12 processor structure and function
12 processor structure and function12 processor structure and function
12 processor structure and function
 
Loaders ( system programming )
Loaders ( system programming ) Loaders ( system programming )
Loaders ( system programming )
 
Automata definitions
Automata definitionsAutomata definitions
Automata definitions
 
Operand and Opcode | Computer Science
Operand and Opcode | Computer ScienceOperand and Opcode | Computer Science
Operand and Opcode | Computer Science
 
Assembly language programming(unit 4)
Assembly language programming(unit 4)Assembly language programming(unit 4)
Assembly language programming(unit 4)
 
Cpu registers
Cpu registersCpu registers
Cpu registers
 
Language processing activity
Language processing activityLanguage processing activity
Language processing activity
 
File Systems
File SystemsFile Systems
File Systems
 

Similar to Intro to Assembly Lang Prog and Tools

Introduction to system programming
Introduction to system programmingIntroduction to system programming
Introduction to system programmingsonalikharade3
 
Introduction To C++ programming and its basic concepts
Introduction To C++ programming and its basic conceptsIntroduction To C++ programming and its basic concepts
Introduction To C++ programming and its basic conceptsssuserf86fba
 
Introduction to compiler
Introduction to compilerIntroduction to compiler
Introduction to compilerA. S. M. Shafi
 
Reverse engineering – debugging fundamentals
Reverse engineering – debugging fundamentalsReverse engineering – debugging fundamentals
Reverse engineering – debugging fundamentalsEran Goldstein
 
CS8251_QB_answers.pdf
CS8251_QB_answers.pdfCS8251_QB_answers.pdf
CS8251_QB_answers.pdfvino108206
 
Stnotes doc 5
Stnotes doc 5Stnotes doc 5
Stnotes doc 5Alok Jain
 
Contents Pre-requisites Approximate .docx
   Contents Pre-requisites  Approximate .docx   Contents Pre-requisites  Approximate .docx
Contents Pre-requisites Approximate .docxShiraPrater50
 
Chapter 2 Program language translation.pptx
Chapter 2 Program language translation.pptxChapter 2 Program language translation.pptx
Chapter 2 Program language translation.pptxdawod yimer
 
Hm system programming class 1
Hm system programming class 1Hm system programming class 1
Hm system programming class 1Hitesh Mohapatra
 
Compliers and interpreters
Compliers and interpretersCompliers and interpreters
Compliers and interpretersshivasdhtsvmic
 
INTRODUCTION TO C PROGRAMMING MATERIAL.pdf
INTRODUCTION TO C PROGRAMMING MATERIAL.pdfINTRODUCTION TO C PROGRAMMING MATERIAL.pdf
INTRODUCTION TO C PROGRAMMING MATERIAL.pdfSubramanyambharathis
 

Similar to Intro to Assembly Lang Prog and Tools (20)

Introduction to system programming
Introduction to system programmingIntroduction to system programming
Introduction to system programming
 
Mp lab manual
Mp lab manualMp lab manual
Mp lab manual
 
Introduction To C++ programming and its basic concepts
Introduction To C++ programming and its basic conceptsIntroduction To C++ programming and its basic concepts
Introduction To C++ programming and its basic concepts
 
linkerloader ss-2.pptx
linkerloader ss-2.pptxlinkerloader ss-2.pptx
linkerloader ss-2.pptx
 
Richa garg itm
Richa garg itmRicha garg itm
Richa garg itm
 
PROBLEM SOLVING
PROBLEM SOLVINGPROBLEM SOLVING
PROBLEM SOLVING
 
Introduction to compiler
Introduction to compilerIntroduction to compiler
Introduction to compiler
 
Python_Module_1.pdf
Python_Module_1.pdfPython_Module_1.pdf
Python_Module_1.pdf
 
computer Unit 6
computer Unit 6computer Unit 6
computer Unit 6
 
Reverse engineering – debugging fundamentals
Reverse engineering – debugging fundamentalsReverse engineering – debugging fundamentals
Reverse engineering – debugging fundamentals
 
CS8251_QB_answers.pdf
CS8251_QB_answers.pdfCS8251_QB_answers.pdf
CS8251_QB_answers.pdf
 
Software Concepts Notes
Software Concepts NotesSoftware Concepts Notes
Software Concepts Notes
 
Stnotes doc 5
Stnotes doc 5Stnotes doc 5
Stnotes doc 5
 
Contents Pre-requisites Approximate .docx
   Contents Pre-requisites  Approximate .docx   Contents Pre-requisites  Approximate .docx
Contents Pre-requisites Approximate .docx
 
Chapter 2 Program language translation.pptx
Chapter 2 Program language translation.pptxChapter 2 Program language translation.pptx
Chapter 2 Program language translation.pptx
 
Hm system programming class 1
Hm system programming class 1Hm system programming class 1
Hm system programming class 1
 
Compliers and interpreters
Compliers and interpretersCompliers and interpreters
Compliers and interpreters
 
INTRODUCTION TO C PROGRAMMING MATERIAL.pdf
INTRODUCTION TO C PROGRAMMING MATERIAL.pdfINTRODUCTION TO C PROGRAMMING MATERIAL.pdf
INTRODUCTION TO C PROGRAMMING MATERIAL.pdf
 
Ex11 mini project
Ex11 mini projectEx11 mini project
Ex11 mini project
 
report
reportreport
report
 

More from Dwight Sabio

Human Rights Observatory Description
Human Rights Observatory DescriptionHuman Rights Observatory Description
Human Rights Observatory DescriptionDwight Sabio
 
RIGHTS-BASED SUSTAINABLE DEVELOPMENT GOALS MONITOR
RIGHTS-BASED SUSTAINABLE DEVELOPMENT GOALS MONITORRIGHTS-BASED SUSTAINABLE DEVELOPMENT GOALS MONITOR
RIGHTS-BASED SUSTAINABLE DEVELOPMENT GOALS MONITORDwight Sabio
 
Report on Girl Children: A Rapid Assessment of their Situation
Report on Girl Children: A Rapid Assessment of their SituationReport on Girl Children: A Rapid Assessment of their Situation
Report on Girl Children: A Rapid Assessment of their SituationDwight Sabio
 
Gender ombud report 2016 final
Gender ombud report 2016 finalGender ombud report 2016 final
Gender ombud report 2016 finalDwight Sabio
 
Strengthening legal referral mechanisms on cases of gender
Strengthening legal referral mechanisms on cases of genderStrengthening legal referral mechanisms on cases of gender
Strengthening legal referral mechanisms on cases of genderDwight Sabio
 
CPU scheduling ppt file
CPU scheduling ppt fileCPU scheduling ppt file
CPU scheduling ppt fileDwight Sabio
 
OperatingSystemChp3
OperatingSystemChp3OperatingSystemChp3
OperatingSystemChp3Dwight Sabio
 
Programming Problem 3
Programming Problem 3Programming Problem 3
Programming Problem 3Dwight Sabio
 
Programming Problem 2
Programming Problem 2Programming Problem 2
Programming Problem 2Dwight Sabio
 
Midterm Project Specification
Midterm Project Specification Midterm Project Specification
Midterm Project Specification Dwight Sabio
 
Game Design Document
Game Design DocumentGame Design Document
Game Design DocumentDwight Sabio
 
ProgrammingProblem
ProgrammingProblemProgrammingProblem
ProgrammingProblemDwight Sabio
 

More from Dwight Sabio (20)

Human Rights Observatory Description
Human Rights Observatory DescriptionHuman Rights Observatory Description
Human Rights Observatory Description
 
RIGHTS-BASED SUSTAINABLE DEVELOPMENT GOALS MONITOR
RIGHTS-BASED SUSTAINABLE DEVELOPMENT GOALS MONITORRIGHTS-BASED SUSTAINABLE DEVELOPMENT GOALS MONITOR
RIGHTS-BASED SUSTAINABLE DEVELOPMENT GOALS MONITOR
 
Report on Girl Children: A Rapid Assessment of their Situation
Report on Girl Children: A Rapid Assessment of their SituationReport on Girl Children: A Rapid Assessment of their Situation
Report on Girl Children: A Rapid Assessment of their Situation
 
Gender ombud report 2016 final
Gender ombud report 2016 finalGender ombud report 2016 final
Gender ombud report 2016 final
 
Strengthening legal referral mechanisms on cases of gender
Strengthening legal referral mechanisms on cases of genderStrengthening legal referral mechanisms on cases of gender
Strengthening legal referral mechanisms on cases of gender
 
IP Report
IP ReportIP Report
IP Report
 
CPU scheduling ppt file
CPU scheduling ppt fileCPU scheduling ppt file
CPU scheduling ppt file
 
Ch3OperSys
Ch3OperSysCh3OperSys
Ch3OperSys
 
OperatingSystemChp3
OperatingSystemChp3OperatingSystemChp3
OperatingSystemChp3
 
ABC Supermarket
ABC SupermarketABC Supermarket
ABC Supermarket
 
Programming Problem 3
Programming Problem 3Programming Problem 3
Programming Problem 3
 
Lab Activity
Lab ActivityLab Activity
Lab Activity
 
Bluetooth
Bluetooth Bluetooth
Bluetooth
 
Programming Problem 2
Programming Problem 2Programming Problem 2
Programming Problem 2
 
Arduino e-book
Arduino e-bookArduino e-book
Arduino e-book
 
Midterm Project Specification
Midterm Project Specification Midterm Project Specification
Midterm Project Specification
 
Game Design Document
Game Design DocumentGame Design Document
Game Design Document
 
Class diagram
Class diagramClass diagram
Class diagram
 
Midterm Project
Midterm Project Midterm Project
Midterm Project
 
ProgrammingProblem
ProgrammingProblemProgrammingProblem
ProgrammingProblem
 

Recently uploaded

KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 

Recently uploaded (20)

KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 

Intro to Assembly Lang Prog and Tools