The function of 4Ch
of interrupt 21h
in DOS is to terminate a program and return control to the operating system. When called, it can also optionally provide an exit code that indicates the program's termination status. This function is commonly used to gracefully exit a program and clean up resources. It effectively signals to the OS that the program has finished executing.
The INT 21H instruction in the 8086 is a software interrupt to vector 21H. In order for it to be used for input/output, the programming that responds to INT 21H must be present. This is part of the Operating System.
In the 8051 microcontroller, the function of 02h of int 21h is to output a character to the standard output device, typically the serial port. When this interrupt is called, it takes a character from the accumulator (register A) and sends it to the output. This is commonly used for displaying characters on a terminal or for debugging purposes.
Read the manual, please. If you don't know where the manual is, Ralph Brown's famous interrupt-list might help.
1. syntax error2. int 21h -- assembly statement in x86 to access a MS-DOS service
In assembly language programming for DOS, "int 21h" refers to a software interrupt that provides access to various DOS services. The "21h" indicates the hexadecimal value of the interrupt, which allows programs to perform functions such as file management, input/output operations, and other system-level tasks. Each function is specified by setting a register (typically AH) to a specific value before calling the interrupt. This mechanism is essential for interacting with the operating system at a low level.
code segment assume cs:code,ds:code mov bx,1200h mov cx,[bx] mov ax,01h l1:mul cx dec cl jnz l1 mov[bx+2],ax mov ah,4ch int 21h code ends end
Code segment assume cs:code mov si,1500h mov di,1600h mov ax,[si] mov bx,[si+2] add ax,bx mov [di],ax mov [di+2],dx mov ah,4ch int 21h code ends end
// declare a function int* function(int, int); or int* (function)(int, int); // declare a pointer to a function int* (*pointer_to_function)(int, int);
start: jmp main option1 db 0ah, 0dh, "1. OPTION 1 $" option2 db 0ah, 0dh, "2. OPTION 2 $" exit db 0ah, 0dh, "3. EXIT $" str1 db 0ah, 0dh, "Press Key: $" x db 0ah, 0dh, "You Pressed option 1 $" y db 0ah, 0dh, "You Pressed option 2 $" z db 0ah, 0dh, "End $" nvl db 0ah, 0dh, "Invalid Option $" one db "1" two db "2" tre db "3" main proc mov ah,09h lea dx,option1 int 21h lea dx,option2 int 21h lea dx,exit int 21h again: mov ah,09h lea dx,str1 int 21h mov ah,01 int 21h mov bl,al cmp bl,"1" je disp1 cmp bl,"2" je disp2 cmp bl,"3" je dispexit cmp al,one jne n cmp al,two jne n cmp al,tre jne n n: mov ah,09h lea dx,nvl int 21h jmp again disp1: mov ah,09h lea dx,x int 21h jmp again disp2: mov ah,09h lea dx,y int 21h jmp again dispexit: mov ah,09h lea dx,z int 21h int 20h main endp end start
.model small .stack .data m db 'the no is odd $' m1 db 'the no is even $' a db 04h b db 02h .code mov ax,@data mov ds,ax mov ah,0 mov al,a mov bl,b div bl cmp ah,00h je l1 mov dx,offset m jmp l l1: mov dx,offset m1 jmp l l: mov ah,09 int 21h mov ah,4ch int 21h end
I will explain in the easiest way the difference between the function and recursive function in C language. Simple Answer is argument of the function is differ but in the recursive function it is same:) Explanation: Function int function(int,int)// function declaration main() { int n; ...... ...... n=function(a,b); } int function(int c,int d) { ...... ...... ...... } recursive Function: int recursive(int,int)// recursive Function declaration main() { int n; ..... ..... ..... ..... n=recursive(a,b); } int recursive(int a,int b) { ..... .... .... .... } Carefully see, In the recursive Function the function arguments are same.
What is the 4ch lick