Вы находитесь на странице: 1из 4

WAP TO PERFORM ASCII TO HEXADECIMAL CODE CONVERSION (USE

NEAR PROCEDURE).
DATA SEGMENT
NUMBER DW ?
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX, DATA
MOV DS, AX
CALL ATH
INT 03H

ATH PROC NEAR


PUSH CX
PUSH BX
PUSH AX
MOV CX, 0010
MOV BX, 0000H
BACK: MOV AH, 01H
INT 21H
CMP AL, ‘0’
JB SKIP
CMP AL, ‘9’
JA SKIP
SUB AL, 30H
PUSH AX
MOV AX, BX
MUL CX
MOV BX, AX
POP AX
MOV AH, 00H
ADD BX, AX
JMP BACK
SKIP: MOV NUMBER, BX
POP AX
POP BX
POP CX
RET
ATH ENDP
CODE ENDS
END START

WAP TO PERFORM DECIMAL (not taken from keyboard) TO HEXADECIMAL


CODE CONVERSION (USE NEAR PROCEDURE).
WAP TO PERFORM HEXADECIMAL TO ASCII CODE CONVERSION (USE
NEAR PROCEDURE).
CODE SEGMENT
ASSUME CS:CODE
START: MOV AX, 007fh
CALL HTA
INT 03H

HTA PROC NEAR


PUSH CX
PUSH BX
PUSH AX
PUSH DX
MOV CX, 0000H; Digit Counter
MOV BX, 0010; Divisor
BACK: MOV DX, 0000H; Clear for division
DIV BX
PUSH DX; Save remainder
INC CX
OR AX, AX; Test quotient for 0 without altering it
JNZ BACK
DISP: POP DX
ADD DL, 30H; Convert BCD to ACSII
MOV AH, 02H; Display remainder
INT 21H
LOOP DISP
POP DX
POP AX
POP BX
POP CX
RET
HTA ENDP
CODE ENDS
END START

(One more method: Use AAM instruction)

WAP TO PERFORM HEXADECIMAL TO DECIMAL (don’t display on monitor)


CODE CONVERSION (USE NEAR PROCEDURE).
Create an assembly language source file containing two PUBLIC FAR procedures
called ‘READKB’ and ‘ECHO’. READKB reads from keyboard using INT 21H
(Function 06h) leaving the ASCII code of key read in AL register. Procedure ECHO
displays the ASCII character in AL on the screen using INT 21H. Develop an assembly
level program which uses these procedures once and make this as the main program.

file1.asm:
code segment
assume cs:code
EXTRN READKB: FAR
EXTRN ECHO: FAR

Start: mov cx, 0010


back: CALL READKB
CALL ECHO
loop back
int 03h
code ends
end Start

file2.asm:
data segment
data ends
code segment
assume cs:code, ds:data
PUBLIC READKB

Start: mov ax, data


mov ds, ax

READKB PROC FAR


mov ah, 06h; This function can be used for both input(read)/output(write)
mov dl, 0ffh; Read request
int 21h
jz READKB; recursive procedure is called till a special character is input
RET
READKB ENDP
code ends
end Start
file3.asm:
data segment
data ends
code segment
assume cs:code, ds:data
PUBLIC ECHO

Start: mov ax, data


mov ds, ax

ECHO PROC FAR


mov dl, al; Write request
mov ah, 06h; This function can be used for both input(read)/output(write)
int 21h
RET
ECHO ENDP
code ends
end Start

Steps to be followed during execution:


1. Assemble all three files separately using masm command.
2. Link file1.obj + file2.obj + file3.obj
3. Debug file1.exe (main program)

Вам также может понравиться