You are on page 1of 2

LAB 2

Answer -1:
DATA SEGMENT
MSG DB "HELLO WORLD$"
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AH,09H
MOV DX,OFFSET MSG
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
Answer- 2:
.MODEL SMALL
.STACK 100H
.DATA
MSG_1 EQU 'Enter the Hex digit (A-F) : $'
MSG_2 EQU 0DH,0AH,'The corresponding Decimal dgit is : $'
PROMPT_1 DB MSG_1
PROMPT_2 DB MSG_2
.CODE
MAIN PROC
MOV AX, @DATA ; initialize DS
MOV DS, AX
LEA DX, PROMPT_1 ; load and display PROMPT_1
MOV AH, 9
INT 21H
MOV AH, 1 ; read the hex digit
INT 21H
MOV BL, AL ; save the hex digit into BL
LEA DX, PROMPT_2 ; load and display PROMPT_2
MOV AH, 9
INT 21H
MOV AH, 2 ; display the first decimal digit i.e. 1
MOV DL, 31H
INT 21H

SUB BL, 11H ; convert the character into second digit

MOV DL, BL ; display the second digit


INT 21H
MOV AH, 4CH ; return control to DOS
INT 21H
MAIN ENDP
END MAIN

Answer 5:
.data
binNum1 BYTE 11111111b
binNum2 BYTE 00000001b
.code
main PROC
mov al, binNum1 ; AL = 0FFh
add al, binNum2 ; AL = 00h CF = 1
sub al, binNum2 ; AL = FFh CF = 1
sub al, binNum2 ; AL = FEh CF = 0

answer 6:
Load value in the accumulator
Then, copy the value to any of the register
Load next value in the accumulator
Compare both values
Check carry flag, if reset then jump to the required address to store the value
Copy the result in the accumulator
Store the result at the required address

You might also like