This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Microprocessors & Interfacing Lab 1
EXPERIMENT NO.1
ADDITION OF TWO 16-BIT NUMBERS-SIGNED & UNSIGNED
AIM: To write an assembly language program to perform addition of two 16-bit signed and unsigned numbers.REGISTERS USED: AX,DSFLAGS AFFECTED: AF,CF,OF,PF,SF,ZFPROGRAM: ASSUME CS:CODE,DS:DATADATA SEGMENTOPR1 DW 4269HOPR2 DW 1000HRES DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,OPR1ADD AX,OPR2MOV RES,AXMOV AH,4CHINT 21HCODE ENDSEND STARTEND
SUBTRACTION OF TWO 16-BIT NUMBERS-SIGNED & UNSIGNED
AIM: To write an assembly language program to perform subtraction of two 16-bit signed and unsigned numbers.REGISTERS USED: AX,DSFLAGS AFFECTED: AF,CF,OF,PF,SF,ZFPROGRAM: ASSUME CS:CODE,DS:DATADATA SEGMENTOPR1 DW 4269HOPR2 DW 1000HRES DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,OPR1SUB AX,OPR2MOV RES,AXMOV AH,4CHINT 21HCODE ENDSEND STARTEND
AIM: To write an assembly language program to perform division of 16-bit unsigned number by 8-bit unsigned number.REGISTERS USED: AX,DSFLAGS AFFECTED: IFPROGRAM: ASSUME CS:CODE,DS:DATADATA SEGMENTOPR1 DW 2C58HOPR2 DB 56HRESQ DB ?RESR DB ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,OPR1DIV OPR2MOV RESQ,ALMOV RESR,AHMOV AH,4CHINT 21HCODE ENDSEND STARTEND
AIM: To write an assembly language program to perform division of 16-bit signed number by 8-bit signed number.REGISTERS USED: AX,DSFLAGS AFFECTED: IFPROGRAM: ASSUME CS:CODE,DS:DATADATA SEGMENTOPR1 DW 26F8HOPR2 DB 0AAHRESQ DW ?RESR DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,OPR1IDIV OPR2MOV RESQ,ALMOV RESR,AHMOV AH,4CHINT 21HCODE ENDSEND STARTEND
RESULT:CASE I: two positive numbersINPUT: OPR1 = 26F8H (DIVIDEND)
OPR2 = 56H (DIVISOR)OUTPUT: RESQ = 74H (AL)
RESR = 00H (AH)CASE II: one positive number & one negative numberINPUT: OPR1 = D908H 2’s Complement of (-26F8H)
AIM: To write an ALP to perform the addition of two ASCII bytes.REGISTERS USED: AX,DSFLAGS AFFECTED: AF,CFPROGRAM: ASSUME CS:CODE,DS:DATADATA SEGMENTCHAR DB '8'CHAR1 DB '6'RES DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AH,00HMOV AL,CHARADD AL,CHAR1AAAMOV RES,AXMOV AH,4CHINT 21HCODE ENDSEND STARTEND
RESULT:INPUT: CHAR = ‘8’
CHAR1 = ‘6’OUTPUT: RES = 0104 (AX) unpacked BCD of 14
AIM: To write an ALP to perform the subtraction of two ASCII bytes.REGISTERS USED: AX,DSFLAGS AFFECTED: AF,CFPROGRAM: ASSUME CS:CODE,DS:DATADATA SEGMENTCHAR DB '9'CHAR1 DB '5'RES DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AH,00HMOV AL,CHARSUB AL,CHAR1AASMOV RES,AXMOV AH,4CHINT 21HCODE ENDSEND STARTEND
RESULT:CASE I:INPUT: CHAR = ‘9’
CHAR1 = ‘5’OUTPUT: RES = 0004 (AX) CASE II:INPUT: CHAR = ‘5’
CHAR1 = ‘9’OUTPUT: RES = 00FC (AX) 2’s Complement of (-4)
AIM: To write an ALP to perform the multiplication of two ASCII bytes.REGISTERS USED: AX,DSFLAGS AFFECTED: PF,SF,ZFPROGRAM: ASSUME CS:CODE,DS:DATADATA SEGMENTNUM1 DB 09NUM2 DB 05RES DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AH,00MOV AL,NUM1MUL NUM2AAMMOV RES,AXMOV AH,4CHINT 21HCODE ENDSEND STARTEND
RESULT:INPUT: NUM1 = 09
NUM2 = 05OUTPUT: RES = 0405 (AX) unpacked BCD of 45
AIM: To write an ALP to perform the multiplication of two ASCII numbers.REGISTERS USED: AX,DSFLAGS AFFECTED: PF,SF,ZFPROGRAM:ASSUME CS:CODE,DS:DATADATA SEGMENTDIVIDEND DW 0607HDIVISOR DB 09HRESQ DB ?RESR DB ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,DIVIDENDAADMOV CH,DIVISORDIV CHMOV RESQ,ALMOV RESR,AHMOV AH,4CHINT 21HCODE ENDSEND STARTEND
AIM: To write an Assembly language program to perform the Logical AND operation.REGISTERS USED: AX,DSFLAGS AFFECTED: PF,SF,ZFPROGRAM:ASSUME CS:CODE,DS:DATADATA SEGMENTOPR1 DW 6493HOPR2 DW 1936HRES DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,OPR1AND AX,OPR2MOV RES,AXMOV AH,4CHINT 21HCODE ENDS END STARTEND
AIM: To write an Assembly language program to perform the Logical OR operation.REGISTERS USED: AX,DSFLAGS AFFECTED: PF,SF,ZFPROGRAM:ASSUME CS:CODE,DS:DATADATA SEGMENTOPR1 DW 6493HOPR2 DW 1936HRES DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,OPR1OR AX,OPR2MOV RES,AXMOV AH,4CHINT 21HCODE ENDS END STARTEND
AIM: To write an Assembly language program to perform the Logical Invert operation.REGISTERS USED: AX,DSFLAGS AFFECTED: No flags are affected.PROGRAM:ASSUME CS:CODE,DS:DATADATA SEGMENTOPR1 DW 6493HRES DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,OPR1NOT AXMOV RES,AXMOV AH,4CHINT 21HCODE ENDS END STARTEND
AIM: To write an assembly language program to perform BCD to ASCII conversion.REGISTERS USED: AX,DS,BL,CLFLAGS AFFECTED: PFPROGRAM: ASSUME CS:CODE,DS:DATADATA SEGMENTBCD DB 49HCOUNT DB 04HASCII1 DB ?ASCII2 DB ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AL,BCDMOV BL,ALAND AL,0FHOR AL,30HMOV ASCII1,ALMOV AL,BLAND AL,0F0HMOV CL,COUNTROR AL,CLOR AL,30HMOV ASCII2,ALMOV AH,4CHINT 21HCODE ENDSEND STARTEND
AIM: To write an assembly language program to find the length of the given string.REGISTERS USED: AX,DS,SI,CLFLAGS AFFECTED: ZF,PF,SF,AF,CFPROGRAM:ASSUME CS:CODE,DS:DATADATA SEGMENTSTR DB 01H,03H,08H,09H,05H,07H,02HLENGTH DB ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AL,00HMOV CL,00HMOV SI,OFFSET STRBACK:CMP AL,[SI]JNC GOINC CLINC SIJNZ BACKGO:MOV LENGTH,CLMOV AH,4CHINT 21HCODE ENDSEND STARTEND
AIM: To write an assembly language program to compare the given strings.REGISTERS USED: AX,DS,SI,DI,CLFLAGS AFFECTED: ZF,CFPROGRAM:ASSUME CS:CODE,DS:DATADATA SEGMENTSTR DB 04H,05H,07H,08HCOUNT EQU 04HORG 0010HSTR1 DB 04H,06H,07H,09HDATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV SI,OFFSET STRMOV DI,OFFSET STR1MOV CL,COUNTCLDREP CMPSBMOV AH,4CHINT 21HCODE ENDSEND STARTEND
RESULT:INPUT: STR (DS:0000H) = 04H,05H,07H,08H
STR1 (DS:0010H) = 04H,06H,07H,09H
OUTPUT: I ): IF STR = STR1 THEN ZF = 1 & II ): IF STR ≠ STR1 THEN ZF = 0
AIM: To write an assembly language program to display the given string.REGISTERS USED: AX,DS,DXFLAGS AFFECTED: No flags are affectedPROGRAM: ASSUME CS:CODE,DS:DATADATA SEGMENTMSG DB 0DH,0AH,"WELCOME TO MICROPROCESSORS LAB",0DH,0AH,"$" DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AH,09HMOV DX,OFFSET MSGINT 21HMOV AH,4CHINT 21HCODE ENDSEND START END