tasm.zip | |
File Size: | 5940 kb |
File Type: | zip |
8086_notes.zip | |
File Size: | 3241 kb |
File Type: | zip |
ADDITION:
DATA SEGMENT
X DW 5234H
Y DW 216FH
DATA Ends
CODE SEGMENT
Assume CS: CODE, DS:DATA
Start:
Mov AX,DATA
Mov DS,AX
Mov CL,00H
Mov AX,X
Add AX,Y
Jnc Down
INc CL
Down: INT 3
CODE Ends
End Start
End
SUBTRACTION:
DATA SEGMENT
X DW 5234H
Y DW 216FH
DATA Ends
CODE SEGMENT
Assume CS: Code, DS:Data
Start:
Mov AX,DATA
Mov DS,AX
Mov CL,00H
Mov AX,X
SUB AX,Y
Jnc Down
INc CL
Down: INT 3
CODE Ends
End Start
End
MULTIPLICATION:
DATA SEGMENT
X DW 5234H
Y DW 216FH
lowerans DW 1 Dup(0)
higherans DW 1 Dup(0)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AX,X
MUL Y
mov lowerans,AX
mov higherans,DX
INT 3
CODE ENDS
END START
END
DIVISION:
DATA SEGMENT
X DW 5234H
Y DW 216FH
Z DW 7286H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV DX,X
MOV AX,Y
DIV Z
INT 3
CODE ENDS
END START
END
FACTORIAL:
Data Segment
X DW 0006H
Data ends
code segment
assume CS:code, DS:Data
Start:
mov ax,Data
mov ds,ax
mov cx,X
mov ax,0001H
again: mul cx
loop again
int 3
code ends
end start
end
PALLINDROME:
DATA SEGMENT
ARRAY1 DB "MALAYALAN"
COUNT DW 0009H
DATA ENDS
EXTRA SEGMENT
ARRAY2 DB 09 DUP(0)
EXTRA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, ES:EXTRA
START:
MOV AX,DATA
MOV DS,AX
MOV AX,EXTRA
MOV ES,AX
LEA SI,ARRAY1
LEA DI,ARRAY2+8
MOV CX,COUNT
UP:CLD
LODSB
STD
STOSB
LOOP UP
LEA SI,ARRAY1
LEA DI,ARRAY2
MOV CX,COUNT
CLD
REPZ: CMPSB
JNZ NFOUND
MOV BL,11H
JMP FOUND
NFOUND:MOV BL,00H
FOUND: INT 3
CODE ENDS
END START
END
ASCENDING:
DATA SEGMENT
COUNT DW 000AH
ARRAY1 DW 0003H,0005H,0006H,0002H,0001H,0004H,0012H,0076H,0040H,0009H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX,DATA
MOV DS,AX
DEC COUNT
MOV DX,COUNT
UP: LEA SI,ARRAY1
MOV CX,COUNT
BACK:MOV AX,[SI]
CMP AX,[SI+2]
JC SKIP
XCHG AX,[SI+2]
MOV [SI],AX
SKIP: INC SI
INC SI
LOOP BACK
DEC DX
JNZ UP
INT 3
CODE ENDS
END START
END
DESCENDING:
DATA SEGMENT
COUNT DW 000AH
ARRAY1 DW 0003H,0005H,0006H,0002H,0001H,0004H,0012H,0076H,0040H,0009H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX,DATA
MOV DS,AX
DEC COUNT
MOV DX,COUNT
UP: LEA SI,ARRAY1
MOV CX,COUNT
BACK:MOV AX,[SI]
CMP AX,[SI+2]
JNC SKIP
XCHG AX,[SI+2]
MOV [SI],AX
SKIP: INC SI
INC SI
LOOP BACK
DEC DX
JNZ UP
INT 3
CODE ENDS
END START
END
DATA SEGMENT
X DW 5234H
Y DW 216FH
DATA Ends
CODE SEGMENT
Assume CS: CODE, DS:DATA
Start:
Mov AX,DATA
Mov DS,AX
Mov CL,00H
Mov AX,X
Add AX,Y
Jnc Down
INc CL
Down: INT 3
CODE Ends
End Start
End
SUBTRACTION:
DATA SEGMENT
X DW 5234H
Y DW 216FH
DATA Ends
CODE SEGMENT
Assume CS: Code, DS:Data
Start:
Mov AX,DATA
Mov DS,AX
Mov CL,00H
Mov AX,X
SUB AX,Y
Jnc Down
INc CL
Down: INT 3
CODE Ends
End Start
End
MULTIPLICATION:
DATA SEGMENT
X DW 5234H
Y DW 216FH
lowerans DW 1 Dup(0)
higherans DW 1 Dup(0)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AX,X
MUL Y
mov lowerans,AX
mov higherans,DX
INT 3
CODE ENDS
END START
END
DIVISION:
DATA SEGMENT
X DW 5234H
Y DW 216FH
Z DW 7286H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV DX,X
MOV AX,Y
DIV Z
INT 3
CODE ENDS
END START
END
FACTORIAL:
Data Segment
X DW 0006H
Data ends
code segment
assume CS:code, DS:Data
Start:
mov ax,Data
mov ds,ax
mov cx,X
mov ax,0001H
again: mul cx
loop again
int 3
code ends
end start
end
PALLINDROME:
DATA SEGMENT
ARRAY1 DB "MALAYALAN"
COUNT DW 0009H
DATA ENDS
EXTRA SEGMENT
ARRAY2 DB 09 DUP(0)
EXTRA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, ES:EXTRA
START:
MOV AX,DATA
MOV DS,AX
MOV AX,EXTRA
MOV ES,AX
LEA SI,ARRAY1
LEA DI,ARRAY2+8
MOV CX,COUNT
UP:CLD
LODSB
STD
STOSB
LOOP UP
LEA SI,ARRAY1
LEA DI,ARRAY2
MOV CX,COUNT
CLD
REPZ: CMPSB
JNZ NFOUND
MOV BL,11H
JMP FOUND
NFOUND:MOV BL,00H
FOUND: INT 3
CODE ENDS
END START
END
ASCENDING:
DATA SEGMENT
COUNT DW 000AH
ARRAY1 DW 0003H,0005H,0006H,0002H,0001H,0004H,0012H,0076H,0040H,0009H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX,DATA
MOV DS,AX
DEC COUNT
MOV DX,COUNT
UP: LEA SI,ARRAY1
MOV CX,COUNT
BACK:MOV AX,[SI]
CMP AX,[SI+2]
JC SKIP
XCHG AX,[SI+2]
MOV [SI],AX
SKIP: INC SI
INC SI
LOOP BACK
DEC DX
JNZ UP
INT 3
CODE ENDS
END START
END
DESCENDING:
DATA SEGMENT
COUNT DW 000AH
ARRAY1 DW 0003H,0005H,0006H,0002H,0001H,0004H,0012H,0076H,0040H,0009H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX,DATA
MOV DS,AX
DEC COUNT
MOV DX,COUNT
UP: LEA SI,ARRAY1
MOV CX,COUNT
BACK:MOV AX,[SI]
CMP AX,[SI+2]
JNC SKIP
XCHG AX,[SI+2]
MOV [SI],AX
SKIP: INC SI
INC SI
LOOP BACK
DEC DX
JNZ UP
INT 3
CODE ENDS
END START
END