Difference between revisions of "MPLab3 Sorting"
Jump to navigation
Jump to search
(Created page with "'''<pre> ; Program to convert ASCII character to Binary equivalent </pre>''' 1. Define the model and architecture for the assembly code <pre> .model SMALL .stack 100H </pre>...") |
|||
Line 6: | Line 6: | ||
.model SMALL | .model SMALL | ||
.stack 100H | .stack 100H | ||
+ | .386 | ||
</pre> | </pre> | ||
Line 11: | Line 12: | ||
<pre> | <pre> | ||
.data | .data | ||
− | + | ARRAY dw 20 DUP (?) | |
− | + | DATA1 dw 0000H | |
+ | NUMB dw 0000H | ||
+ | msg db 10,13,"Enter the size of the array: $" | ||
+ | msg2 db 10,13,"Enter the elements of array: $" | ||
+ | msg3 db 10,13,"The sorted array is: $" | ||
</pre> | </pre> | ||
Revision as of 23:16, 30 October 2023
; Program to convert ASCII character to Binary equivalent
1. Define the model and architecture for the assembly code
.model SMALL .stack 100H .386
2. Define your data in the data section ( here you can define various data items: variables, constants, strings, arrays)
.data ARRAY dw 20 DUP (?) DATA1 dw 0000H NUMB dw 0000H msg db 10,13,"Enter the size of the array: $" msg2 db 10,13,"Enter the elements of array: $" msg3 db 10,13,"The sorted array is: $"
3. Define your instruction in the code section (here you write the assembly instructions that perform computations, control program flow, and interact with data variables and memory)
.code .startup ; print the input string MOV DX, OFFSET inputStr MOV AH, 09H INT 21H ;read a character from the standard input MOV AH, 01H INT 21H ;at this point whatever character is entered by the user, its binary equivalent(8-bits) of the ASCII code is stored in AL MOV BL, AL ; binary equivalent of ASCII character is moved to BL ; print the output string MOV DX, OFFSET outputStr MOV AH, 09H INT 21H ; Now left shift the bits, to extract the MSB and print it (repeat the shifting and extracting until every bit is printed) MOV CX, 8 repeat8Times: SHL BL, 1 JC printOne ; Jump if carry generated MOV DL, 30H ; ASCCI code for '0' is 30H, which is 48 in decimal JMP print printOne: MOV DL, 31H print: MOV AH, 02H INT 21H LOOP repeat8Times ; exit from the program MOV AH, 4CH INT 21H END