Professional Documents
Culture Documents
DEPT OF ECE
CONTENTS
Page no. List of Experiments (as per JNTU) Microprocessor 8086 Programming Introduction to MASM and TASM Arithmetic operations: 1) Arithmetic Operations on 8 bit data 2) 3) 4) 5) Arithmetic Operations on 16 bit data 9 Multibyte addition and subtraction 13 Signed Operations on 8 bit data 17 ASCII Arithmetic Operations 19 Logic Operations: 6) BCD to ASCII Conversion 7) ASCII to BCD Conversion 8) No. of Positive nos & Negative nos. 9) No. of Odd nos & Even nos. 10) Packed BCD to Unpacked BCD Conversion String Operations: 11) Transfer Block of Data 12) Reversal of given String 13) Sorting of N numbers 14) Length of the given String 15) Comparison of two Strings DOS/BIOS Programming: 16) Reading Keyboard buffered with echo 17) Reading Keyboard buffered with out echo SRI SAI ADITYA INSTITUTE OF SCIENCE&TECHNOLOGY 1 53 55 37 39 43 47 49 23 25 27 31 35 3,4 5 1, 2
DEPT OF ECE 57
Page no.
Interfacing with (8086) programs: 19) To generate triangle wave by using DAC with 8086 20) To generate square wave by using DAC with 8086 21) Keyboard Display Interfacing (8279) Microcontroller (8051) programs: 22) Reading & writing data by 8051 23) Square wave generator using Timer in different modes 24) Serial communication ADDITIONAL PROGRAMS: 1) Arithmetic operations on 8 bit data by using 8051 2) Stepper Motor Interfacing Using 8255 PPI 75 79 67 69 71 59 61 63
DEPT OF ECE
INTRODUCITION TO MASM/TASM
ASSEMBLY LANGUAGE PROGRAMMING USING MASM SOFTWARE:
This software is used to write a program (8086, Pentium processors etc.).The programs are written using assembly language in editor and then compile it. The complier converts assembly language statements into machine language statements/checks for errors. Then execute the compiled program. Programs for different processor instructions (Pentium, 8086) programming manner differ for each model. There are different soft wares developed by different companies for assembly language programming which are: MASM - Microsoft Company. TASM - Bore Land Company.
MERITS OF MASM: 1. produces binary code 2. Referring data items by their names rather than by their address. HOW TO ENTER INTO MASM EDITOR: Click Start on the desktop. Then select Run Then it Shows inbox Then type Command (CMD) which enters You into DOS prompt Path setting Suppose it display path as C:\ DOCUME-\ADMIN> Then type CD\ i.e.; C:\DOCUME\\ADMIN>CD\ Then the path is C :\> Then type CD MASM Then the path is C: MASM> Then type edit i.e.; C: MASM>edit Then you enter into MASM text editor.
MICROPROCESSORS LAB MANUAL DEPT OF ECE Then enter to file and select New. And name it and then write the ALP (Assembly Language Program) in this editor. After that save it as filenames Then exit from the editor and go to prompt. Then type MASM filename.ASM I.e. C: MASM>MASM filename.ASM or C: MASM filename.ASM, , ; Then link this file using C: MASM>LINK filename.OBJ or C: MASM>LINK filename.OBJ , , ; i.e link the program in assembly with DOS then to debug to create exe file
DEBUG COMMANDS:
ASSEMBLE A [address] COMPARE C range address DUMP D [range] ENTER E address [list] FILL GO HEX INPUT LOAD ; Assembly the instructions at a particular address ; Compare two memory ranges ; Display contents of memory ; Enter new or modifies memory contents beginning at specific Location F range list ; Fill in a range of memory G [=address] [addresses] ; Execute a program in memory H value1 value2 ; Add and subtract two Hex values I port L [address] [drive] [first sector] [number]
MOVE M range address NAME N [pathname] [arg list] OUTPUT O port byte PROCEED P [=address] [number] QUIT Q REGISTER R [register] SEARCH S range list TRACE T [=address] [value] UNASSEMBLE U [range] WRITE W [address] [drive] [first sector] [number] ALLOCATE expanded memory XA [#pages] SRI SAI ADITYA INSTITUTE OF SCIENCE&TECHNOLOGY 4
MICROPROCESSORS LAB MANUAL DEALLOCATE expanded memory XD [handle] MAP expanded memory pages XM [Lpage] [Ppage] [handle] DISPLAY expanded memory status XS
DEPT OF ECE
EXP. NO : 1
DATE:
DUP (00)
CODE SEGMENT START: MOV AX, DATA MOV DS, AX SRI SAI ADITYA INSTITUTE OF SCIENCE&TECHNOLOGY 5
MICROPROCESSORS LAB MANUAL MOV AL, N1 MOV BL,N2 ADD AL,BL MOV [RESULT], AL MOV AL, N1 SUB AL, BL MOV [RESULT+1], AL MOV AH,00H MOV AL, N1 MUL BL MOV [RESULT+2], AL MOV [RESULT+3], AH MOV AL, N1 MOV AH, 00H DIV BL MOV [RESULT+4], AL MOV [RESULT+5], AH
DEPT OF ECE
CODE TABLE:
MICROPROCESSORS LAB MANUAL Physical address Mnemonics Hex code Segment Effective Opcode Operand address address
CALCULATIONS:
MOV
AH, 4CH 7
DEPT OF ECE
RESULT:
MICROPROCESSORS LAB MANUAL CODE TABLE: Physical address Segment Effective address address Hex code Mnemonics Opcode Operand
DEPT OF ECE
Comments
DEPT OF ECE
EXP. NO : 2
DATE:
DATA SEGMENT N1 EQU 8888H N2 EQU 4444H DATA ENDS CODE SEGMENT START: MOV AX, DATA MOV DS, AX MOV SI, 5000H MOV AX, N1 MOV BX, N2 ADD AX, BX MOV [SI], AX MOV AX, N1 SUB AX, BX MOV [SI+2], AX MOV DX, 0000H MOV AX, N1 MUL BX MOV [SI+4], AX MOV [SI+6], DX MOV AX, N1 SRI SAI ADITYA INSTITUTE OF SCIENCE&TECHNOLOGY 10
MICROPROCESSORS LAB MANUAL MOV DX, 0000H DIV BX MOV [SI+8], AH MOV [SI+0AH], DX
DEPT OF ECE
CALCULATIONS:
11
DEPT OF ECE
12
DEPT OF ECE
RESULT:
\
CODE TABLE: Physical address Segment Effective address address Hex code Mnemonics Opcode Operand Comments
13
DEPT OF ECE
EXP. NO : 3
DATE:
DATA SEGMENT N1 DB 33H, 33H, 33H N2 DB 11H, 11H, 11H COUNT EQU 0003H SUM DB 03H DUP (00) DIFF DB 03H DUP (00) DATA ENDS CODE SEGMENT ORG 1000H START: MOV MOV MOV MOV
MICROPROCESSORS LAB MANUAL CLC BACK: MOV AL, N1 [BX] ADC AL, N2 [BX] MOV SUM [BX], AL DEC BX LOOP BACK MOV CX, COUNT MOV BX, 0002H BACK1: MOV AL, N1 [BX] SBB AL, N2 [BX]
DEPT OF ECE
CALCULATIONS:
15
DEPT OF ECE
MOV DIFF [BX], AL DEC BX LOOP BACK1 MOV AH, 4CH INT 21H CODE ENDS END START
16
DEPT OF ECE
RESULT:
CODE TABLE: Physical address Segment Effective address address Hex code Mnemonics Opcode Operand Comments
CALCULATIONS:
17
DEPT OF ECE
EXP. NO : 4
DATE:
18
DEPT OF ECE
RESULT:
CODE TABLE:
19
MICROPROCESSORS LAB MANUAL Physical address Hex code Segment Effective address address
20
21
DEPT OF ECE
DATA SEGMENT N1 DB 8 N2 DB 4 DATA ENDS CODE SEGMENT ORG 1000H START: MOV AX, DATA MOV DS, AX MOV SI, 2000H XOR AX, AX XOR BX, BX MOV AL, N1 MOV BL, N2 ADD AX, BX AAA MOV [SI], AX MOV AL, N1 MOV AH,00 SUB AL, BL AAS MOV [SI+2], AX MOV AL, 08H MOV BL, 04H MUL BL AAM MOV [SI+4], AX AAD DIV BL MOV [SI+6], AX MOV AH, 4CH INT 21H
22
DEPT OF ECE
CALCULATIONS:
23
DEPT OF ECE
CODE TABLE: Physical address Segment Effective address address Hex code Mnemonics Opcode Operand Comments
CALCULATIONS:
24
DEPT OF ECE
EXP. NO : 6
DATE:
DEPT OF ECE
RESULT:
CODE TABLE: Physical address Segment Effective address address Hex code Mnemonics Opcode Operand Comments
CALCULATIONS:
26
DEPT OF ECE
EXP. NO : 7
DATE:
27
DEPT OF ECE
RESULT:
CODE TABLE:
28
MICROPROCESSORS LAB MANUAL Physical address Mnemonics Hex code Segment Effective Opcode Operand address address
DATE: 29
DEPT OF ECE
30
DEPT OF ECE
DATA SEGMENT LIST DB 0FFH, 0DDH, 04H, 05H, 98H RESULT DW ? DATA ENDS CODE SEGMENT ORG 1000H START: MOV AX, DATA MOV DS, AX LEA SI, LIST MOV CX, 0005H MOV DX, 0000H BACK: MOV AL, [SI] ROL AL, 01H JC NEGATIVE INC DL INC SI LOOP BACK JMP EXIT NEGATIVE: INC DH INC SI LOOP BACK EXIT: MOV [RESULT], DX MOV AH, 4CH INT 21H CODE ENDS END START
31
DEPT OF ECE
CALCULATIONS:
DEPT OF ECE
CODE TABLE: Physical address Segment Effective address address Hex code Mnemonics Opcode Operand Comments
33
DEPT OF ECE
EXP. NO : 9
DATE:
34
DEPT OF ECE
DATA SEGMENT LIST DB 05H,01H,03H,04H,08H,02H COUNT DW 0006H RESULT DW ? DATA ENDS CODE SEGMENT ORG 1000H START: MOV AX, DATA MOV DS, AX MOV CX, COUNT MOV DX, 0000H MOV SI, OFFSET LIST BACK: MOV AL, [SI] ROR AL, 01H JC ODD INC DL INC SI LOOP BACK JMP EXIT ODD: INC DH INC SI LOOP BACK EXIT: MOV [RESULT], DX 35
MICROPROCESSORS LAB MANUAL MOV AH, 4CH INT 21H CODE ENDS END START
DEPT OF ECE
CALCULATIONS:
36
DEPT OF ECE
RESULT:
CODE TABLE: Physical address Segment Effective address address Hex code Mnemonics Opcode Operand Comments
CALCULATIONS:
SRI SAI ADITYA INSTITUTE OF SCIENCE&TECHNOLOGY 37
DEPT OF ECE
EXP. NO : 10
DATE:
MOV DS, AX MOV AL, N MOV BL, N MOV CL, 04H AND AL, 0FH SRI SAI ADITYA INSTITUTE OF SCIENCE&TECHNOLOGY 38
MICROPROCESSORS LAB MANUAL AND BL, 0F0H ROR BL, CL MOV [RESULT], BL MOV [RESULT+1], AL MOV AH, 4CH INT 21H
CODE ENDS END START
DEPT OF ECE
RESULT:
CODE TABLE:
39
MICROPROCESSORS LAB MANUAL Physical address Hex code Segment Effective address address
DATE: 40
DEPT OF ECE
START:
RESULT:
41
DEPT OF ECE
CALCULATIONS:
42
DEPT OF ECE
EXP. NO : 12
DATE:
43
DEPT OF ECE
CODE TABLE: Physical address Segment Effective address address Hex code Mnemonics Opcode Operand Comments
44
DEPT OF ECE
DATA SEGMENT LIST DB MICRO PROCESSOR SRI SAI ADITYA INSTITUTE OF SCIENCE&TECHNOLOGY 45
MICROPROCESSORS LAB MANUAL COUNT EQU ($-LIST) DATA ENDS CODE SEGMENT ORG 1000H START: MOV AX, DATA MOV DS, AX MOV ES, AX MOV CX, COUNT MOV AX, CX MOV SI, OFFSET LIST MOV DI, (COUNT-1) MOV BX, 02H DIV BX MOV CX, AX BACK: MOV AL,[SI] XCHG AL,[DI] MOV [SI], AL INC SI DEC DI LOOP BACK MOV AH, 4CH INT 21H CODE ENDS END START
DEPT OF ECE
RESULT:
CODE TABLE:
46
MICROPROCESSORS LAB MANUAL Physical address Hex code Segment Effective address address
47
SORTING OF N NUMBERS
ABSTRACT: Assembly language program to do sorting of numbers in a given series PORT USED: None REGISTERS USED: CX, DX, AL, SI ALGORITHM: Step1: Start Step2: Initialize data segment Step3: Load CX register with count Step4: Copy the contents from CX to DX Step5: Load SI with offset list Step6: Copy the contents from DX to CX Step7: Move the contents from memory location SI to AL Step8: Increment SI Step9: Compare AL contents with [SI] Step10: Jump to step15 if carry Step11: Exchange the contents of AL with [SI] Step12: Decrement SI Step13: Move the contents from AL to memory location SI Step14: Increment SI Step15: Decrement CX and jump to step7 if no zero Step16: Decrement DX and jump to step5 if no zero Step17: Stop
48
DEPT OF ECE
49
DEPT OF ECE
PROGRAM: ASSUME CS: CODE, DS: DATA DATA SEGMENT LIST DB 56H, 12H, 72H,32H COUNT EQU 0003H DATA ENDS CODE SEGMENT ORG 1000H START: MOV AX, DATA MOV DS, AX MOV CX, COUNT MOV DX, CX AGAIN: BACK: MOV SI, OFFSET LIST MOV CX, DX MOV AL, [SI] INC SI CMP AL, [SI] JC NEXT XCHG [SI], AL DEC SI MOV [SI], AL INC SI NEXT: LOOP BACK DEC DX JNZ AGAIN MOV AH, 4CH INT 21H CODE ENDS END START
RESULT:
50
DEPT OF ECE
CODE TABLE: Physical address Segment Effective address address Hex code Mnemonics Opcode Operand Comments
51
DEPT OF ECE
\
EXP. NO : 14 DATE:
52
DEPT OF ECE
RESULT:
CODE TABLE:
53
MICROPROCESSORS LAB MANUAL Physical address Hex code Segment Effective address address
54
55
DEPT OF ECE
56
DEPT OF ECE
PROGRAM: ASSUME CS: CODE, DS: DATA, ES: DATA LIST1 DB SRI SAI ADITYA LEN1 EQU ($-LIST1) LIST2 DB SRI SAI ADITYA LEN2 EQU ($-LIST2) RESULT DW ? DATA ENDS CODE SEGMENT ORG 1000H START: MOV AX, DATA MOV DS, AX MOV ES, AX MOV AX,LEN1 MOV BX, LEN2 CMP AX, BX JNE EXIT MOV CX, AX MOV SI, OFFSET LIST1 MOV DI, OFFSET LIST2 REP CMPSB JNE EXIT MOV RESULT, 5555H JMP NEXT EXIT: MOV RESULT, 0FFFFH NEXT: MOV AH, 4CH INT 21H CODE ENDS END START
RESULT:
57
DEPT OF ECE
CODE TABLE: Physical address Segment Effective address address Hex code Mnemonics Opcode Operand Comments
58
DEPT OF ECE
EXP. NO :16
DATE:
START:
BACK:
EXIT:
59
DEPT OF ECE
RESULT:
CODE TABLE:
60
MICROPROCESSORS LAB MANUAL Physical address Hex code Segment Effective address address
DATE: 61
DEPT OF ECE
START: BACK:
EXIT:
RESULT:
62
MICROPROCESSORS LAB MANUAL CODE TABLE: Physical address Segment Effective address address Hex code Mnemonics Opcode Operand
DEPT OF ECE
Comments
63
DEPT OF ECE
EXP. NO : 18
DATE:
START:
BACK:
EXIT:
64
DEPT OF ECE
CODE TABLE: Physical address Segment Effective address address Hex code Mnemonics Opcode Operand Comments
65
DEPT OF ECE
EXP. NO : 19
DATE:
66
DEPT OF ECE
RESULT:
CODE TABLE:
67
MICROPROCESSORS LAB MANUAL Physical address Hex code Segment Effective address address
68
RESULT:
69
DEPT OF ECE
CODE TABLE: Physical address Segment Effective address address Hex code Mnemonics Opcode Operand Comments
70
DEPT OF ECE
EXP. NO : 21
DATE:
KEYBOARD INTERFACING
AIM: To display a string through interfacing 8279 by using 8086. REGISTERS USED: AX, BX, CX, DX, SI PORTS USED: command port, data port
ALGORITHM: Step1: Start Step2: Load SI with 1200H. Step3: Load CX with 000FH. Step4: Load al with 10H Step5: Write al onto address C2H Step6: Load al with CCH Step7: Write al onto address C2H Step8: Load al with 90H Step9: Write al onto address C2H Step10: Load al with contents of SI Step11: Write al onto address C0H Step12: Jump to step 16 Step13: Increment SI Step14: Decrement CX if not equal to zero. Step 15: Jump to step 12 Step 16: Load DX with 0A0FFH Step 17:.Decrement DX Step18: If DX not equal to zero jump to step 17 otherwise jump to step 18. Step 19:Return to main program Step 20: Stop
71
DEPT OF ECE
72
DEPT OF ECE
PROGRAM: START: MOV MOV MOV OUT MOV OUT MOV OUT NEXT: SI,1200H CX, 000FH AL, 10H 0C2, AL AL, 0CCH 0C2, AL AL,90H 0C2,AL
JMP START DELAY: LOOP: MOV DX,0A0FFH DEC DX JNZ LOOP RET
DEPT OF ECE
CODE TABLE: Physical address Segment Effectiv address e address Hex code Mnemonics Opcode Operand Comments
74
DEPT OF ECE
CODE TABLE: Physical address Segment Effectiv address e address Hex code Mnemonics Opcode Operan d Comments
75
DEPT OF ECE
EXP. NO : 22
DATE:
Reading & Writing data from parallel port by using 8051 kit
Aim : To perform reading & writing data from parallel port by using 8051 kit Ports used: none Registers used: A,DPTR Algorithm: Step 1: Start Step 2: Move FFH into the port 1 Step 3: Move contents into port1 into register A Step 4: Move 4150H into register DPTR Step 5: Move contents of register a into contents of DPTR Step 6: Jump to step 6 Step 7: Move 55 into register A Step 8: Move contents of register A into the port1 Step 9: Jump to step 9 Step 10:Stop PROGRAM FOR READING : MOV MOV MOV HLT: P1,#0FFH A, P1 DPTR,#4150H
SJMP HLT
RESULT:
76
DEPT OF ECE
CODE TABLE: Physical address Segment Effective address address Hex code Mnemonics Opcode Operand Comments
77
DEPT OF ECE
EXP. NO : 23
DATE:
Write a program to generate square wave using timer in different modes by using 8051
AIM: To generate square wave using timer in different modes by using 8051 REGISTERS USED: general purpose registers: AL, CX PORTS USED: PORT A ALGORITHM: Step 1: Start Step 2: Move 01 into the register tmod Step 3: Move 3e into the register tl0 Step 4: Move 3b into the register th0 Step 5: Compliment part1 Step 6: Setbit the register bits tcon.4 Step 7: Compare the value of tf0 and 4100 jump if not below Step 8: Clear the 5th bit of register tcon.4 Step 9: Clear the 6th bit of register tcon.5 Step 10: Jump to step2 Step 11: Stop
Program:
AGAIN: MOV TMOD,#01 MOV TL0,#3E MOV TH0,#3B CPL P1(90) SETB TCON.4(8C) JNB TF0(8D),HERE CLR TCON.4(8C) CLR TCON.5(8D) SJMP AGAIN
HERE:
78
DEPT OF ECE
RESULT:
CODE TABLE:
79
MICROPROCESSORS LAB MANUAL Physical address Hex code Segment Effective address address
80
Serial communication
AIM: To transmit data serially to the pc at baud rate 9600 REGISTERS USED: General purpose registers: AL, CX PORTS USED: PORT A ALGORITHM: Step1: Start Step2: Load R0 with 06H Step3: Load DPTR with 4150H Step4: Load SCON with 50H Step5: Load TMOD with 20H Step6: Load TH1 with FD Step7: Set bit TR1 Step8: Load A with contents of DPTR Step9: Load SBUF with contents of A Step10: Repeat the step 10 until TI=1 i.e check whether TI=1 if TI=1 go to step 8 Step11: Clear TI Step12: Increment DPTR Step13: Decrement R0, if R0#0,goto step 8 Step14: Jump to step2 Step15: Stop
81
DEPT OF ECE
82
DEPT OF ECE
PROGRAM: AGAIN: MOV R0,#06H MOV DPTR,#4150H MOV SCON,#50H MOV TMOD,#20H MOV TH1,#0FDH SETB NEXT: HERE: MOV JNB CLR INC 8EH SBUF,A 99H,HERE TI DPTR MOVX A,@DPTR
RESULT:
83
DEPT OF ECE
CODE TABLE: Physical address Segment Effective address address Mnemonics Opcode Operand
Hex code
Comments
84
DEPT OF ECE
EXP. NO : 25
DATE:
Step1: Start Step2: Move 20 into the register A. Step3: Add the contents of register A with 30, along with carry. Step4: Move 4150 to register DPTR Step5: Move the contents of register A into contents of data pointer. Step6: Move 6 into register A Step7: Subtract the contents of register A from 3 with borrow. Step8: Increment DPTR Step9: Move the contents of register A into contents of data pointer. Step10: Move 6 into register A. Step11: Move 2 into register B. Step12: Perform multiplication on contents of register A,B. Step13: Increment DPTR Step14: Move the contents of register A into contents of data pointer. Step15: Move 8 into register A. Step16: Move 4 into register B. Step17: Perform division on contents of register A,B. Step18: Increment DPTR Step19: Move the contents of register A into contents of data pointer. Step20: Stop
85
DEPT OF ECE
86
DEPT OF ECE
PROGRAM: MOV A,#20H ADDC A,#30H MOV DPTR,#4150H MOVX @DPTR,A MOV A,#06H SUBB A,#03H INC DPTR MOVX @DPTR,A MOV A,#06H MOV B,#02H MUL AB INC DPTR MOVX @DPTR,A MOV A,#08H MOV B,#04H DIV AB INC DPTR MOVX @DPTR,A HLT: SJMP HLT
DEPT OF ECE
CODE TABLE:
88
MICROPROCESSORS LAB MANUAL Physical address Mnemonics Hex code Segment Effectiv Opcode Operand address e address
89
RPT: DELAY:
RESULT:
90