Sie sind auf Seite 1von 13

(1.

0)

DATA SEGMENT
STRING1 DB 99H,12H,56H,45H,36H
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX

MOV CH,04H

UP2: MOV CL,04H


LEA SI,STRING1

UP1: MOV AL,[SI]


MOV BL,[SI+1]
CMP AL,BL
JC DOWN
MOV DL,[SI+1]
XCHG [SI],DL
MOV [SI+1],DL

DOWN: INC SI
DEC CL
JNZ UP1
DEC CH
JNZ UP2

INT 3
CODE ENDS
END START

C:\TASM>masm AMPE10.asm
Microsoft (R) Macro Assembler Version 5.00
Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.

Object filename [AMPE10.OBJ]:


Source listing [NUL.LST]:
Cross-reference [NUL.CRF]:

49452 + 414900 Bytes symbol space free

0 Warning Errors
0 Severe Errors

C:\TASM>link AMPE10.obj

Microsoft (R) Overlay Linker Version 3.60


Copyright (C) Microsoft Corp 1983-1987. All rights reserved.

Run File [AMPE10.EXE]:


List File [NUL.MAP]:
Libraries [.LIB]:
LINK : warning L4021: no stack segment

C:\TASM>debug AMPE10.exe
-g
AX=1456 BX=0099 CX=0000 DX=0045 SP=0000 BP=0000 SI=0004 DI=0000
DS=14A4 ES=1494 SS=14A4 CS=14A5 IP=0027 NV UP EI PL ZR NA PE CY
14A5:0027 CC INT 3
-d 14A4:0000
14A4:0000 12 36 45 56 99 00 00 00-00 00 00 00 00 00 00 00 .6EV............
14A4:0010 B8 A4 14 8E D8 B5 04 B1-04 8D 36 00 00 8A 04 8A ..........6.....
14A4:0020 5C 01 3A C3 72 08 8A 54-01 86 14 88 54 01 46 FE \.:.r..T....T.F.
14A4:0030 C9 75 EA FE CD 75 E0 CC-2B C0 8B F0 0B F6 74 0C .u...u..+.....t.
14A4:0040 8B DE D1 E3 03 1E 9A 16-8B 07 EB 02 2B C0 89 46 ............+..F
14A4:0050 F2 C4 5E F8 26 8B 47 08-89 46 F6 8B 5E 06 8B 07 ..^.&.G..F..^...
14A4:0060 8B 57 02 89 46 F8 89 56-FA C4 5E F8 26 83 7F 06 .W..F..V..^.&...
14A4:0070 00 74 0F 26 8B 5F 06 D1-E3 03 1E 96 16 8B 07 EB .t.&._..........

(1.1)
Data Segment
arr1 db 8,2,7,4,3
Data Ends

Code Segment
Assume cs:code, ds:data

Begin:
mov ax, data
mov ds, ax
mov es, ax
mov bx, OFFSET arr1
mov cx, 5
mov dx, cx
L1:
mov si, 0
mov ax, si
inc ax
mov di, ax
mov dx, cx
L2:
mov al, [bx][si]
cmp al, [bx][di]
jg L4
L3:
inc si
inc di
dec dx
cmp dx, 00
je L1
jg L2
L4:
mov al, [bx][si]
mov ah, [bx][di]
mov [bx][si], ah
mov [bx][di], al
inc si
inc di
dec dx
cmp dx, 00
je L1
jg L2
Exit:
mov ax, 4c00h
int 21h
Code Ends
End Begin

(2)

DATA SEGMENT
STRING1 DB 99H,12H,56H,45H,36H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV CH,04H
UP2: MOV CL,04H
LEA SI,STRING1

UP1:MOV AL,[SI]
MOV BL,[SI+1]
CMP AL,BL
JNC DOWN
MOV DL,[SI+1]
XCHG [SI],DL
MOV [SI+1],DL

DOWN: INC SI
DEC CL
JNZ UP1
DEC CH
JNZ UP2
INT 3
CODE ENDS
END START

C:\TASM>masm str_desc.asm
Microsoft (R) Macro Assembler Version 5.00
Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.

Object filename [str_desc.OBJ]:


Source listing [NUL.LST]:
Cross-reference [NUL.CRF]:
str_desc.asm(1): warning A4001: Extra characters on line

50760 + 450936 Bytes symbol space free

1 Warning Errors
0 Severe Errors

C:\TASM>link str_desc.obj

Microsoft (R) Overlay Linker Version 3.60


Copyright (C) Microsoft Corp 1983-1987. All rights reserved.

Run File [STR_DESC.EXE]:


List File [NUL.MAP]:
Libraries [.LIB]:
LINK : warning L4021: no stack segment

C:\TASM>debug str_desc.exe
-g

AX=0B36 BX=0012 CX=0000 DX=0012 SP=0000 BP=0000 SI=0004 DI=0000


DS=0B37 ES=0B27 SS=0B37 CS=0B38 IP=0027 NV UP EI PL ZR NA PE NC
0B38:0027 CC INT 3
-d 0B37:0000
0B37:0000 99 56 45 36 12 00 00 00-00 00 00 00 00 00 00 00 .VE6............
0B37:0010 B8 37 0B 8E D8 B5 04 B1-04 8D 36 00 00 8A 04 8A .7........6.....
0B37:0020 5C 01 3A C3 73 08 8A 54-01 86 14 88 54 01 46 FE \.:.s..T....T.F.
0B37:0030 C9 75 EA FE CD 75 E0 CC-0C 2A E4 40 50 8B C3 05 .u...u...*.@P...
0B37:0040 0C 00 52 50 E8 19 46 83-C4 04 50 8D 86 00 FF 50 ..RP..F...P....P
0B37:0050 E8 6F 70 83 C4 06 B8 CD-05 50 8D 86 00 FF 50 E8 .op......P....P.
0B37:0060 CA 0C 83 C4 04 B8 FF FF-50 8D 86 00 FF 50 8D 46 ........P....P.F
0B37:0070 80 50 E8 4D FA 83 C4 06-0A C0 75 03 E9 7B FF 5E .P.M......u..{.^
-q

data segment
STRING1 DB 08h,14h,05h,0Fh,09h
res db ?
data ends

code segment
assume cs:code, ds:data
start: mov ax, data
mov ds, ax
mov cx, 04h

mov bl, 00h


LEA SI, STRING1
up:
mov al, [SI]
cmp al, bl
jl nxt
mov bl, al
nxt:
inc si
dec cx
jnz up

mov res,bl
int 3
code ends
end start

C:\TASM>masm largest.asm
Microsoft (R) Macro Assembler Version 5.00
Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.

Object filename [largest.OBJ]:


Source listing [NUL.LST]:
Cross-reference [NUL.CRF]:

50846 + 450850 Bytes symbol space free

0 Warning Errors
0 Severe Errors

C:\TASM>link largest.obj
Microsoft (R) Overlay Linker Version 3.60
Copyright (C) Microsoft Corp 1983-1987. All rights reserved.

Run File [LARGEST.EXE]:


List File [NUL.MAP]:
Libraries [.LIB]:
LINK : warning L4021: no stack segment

C:\TASM>debug largest.exe
-g

AX=0B0F BX=0014 CX=0000 DX=0000 SP=0000 BP=0000 SI=0004 DI=0000


DS=0B37 ES=0B27 SS=0B37 CS=0B38 IP=001E NV UP EI PL ZR NA PE CY
0B38:001E CC INT 3
-d 0b37:0000
0B37:0000 08 14 05 0F 09 14 00 00-00 00 00 00 00 00 00 00 ................
0B37:0010 B8 37 0B 8E D8 B9 04 00-B3 00 8D 36 00 00 8A 04 .7.........6....
0B37:0020 3A C3 7C 02 8A D8 46 49-75 F4 88 1E 05 00 CC FC :.|...FIu.......
0B37:0030 FE C4 9E FA FE 26 8A 47-0C 2A E4 40 50 8B C3 05 .....&.G.*.@P...
0B37:0040 0C 00 52 50 E8 19 46 83-C4 04 50 8D 86 00 FF 50 ..RP..F...P....P
0B37:0050 E8 6F 70 83 C4 06 B8 CD-05 50 8D 86 00 FF 50 E8 .op......P....P.
0B37:0060 CA 0C 83 C4 04 B8 FF FF-50 8D 86 00 FF 50 8D 46 ........P....P.F
0B37:0070 80 50 E8 4D FA 83 C4 06-0A C0 75 03 E9 7B FF 5E .P.M......u..{.^
-q

(4)
data segment
STRING1 DB 08h,14h,05h,0Fh,09h
res db ?
data ends

code segment
assume cs:code, ds:data
start: mov ax, data
mov ds, ax
mov cx, 04h

mov bl, 79h


LEA SI, STRING1
up:
mov al, [SI]
cmp al, bl
jge nxt
mov bl, al
nxt:
inc si
dec cx
jnz up

mov res,bl
int 3
code ends
end start

C:\TASM>masm smallest.asm
Microsoft (R) Macro Assembler Version 5.00
Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.
Object filename [smallest.OBJ]:
Source listing [NUL.LST]:
Cross-reference [NUL.CRF]:

50836 + 450860 Bytes symbol space free

0 Warning Errors
0 Severe Errors

C:\TASM>link smallest.obj

Microsoft (R) Overlay Linker Version 3.60


Copyright (C) Microsoft Corp 1983-1987. All rights reserved.

Run File [SMALLEST.EXE]:


List File [NUL.MAP]:
Libraries [.LIB]:
LINK : warning L4021: no stack segment

C:\TASM>debug smallest.exe
-g

AX=0B0F BX=0005 CX=0000 DX=0000 SP=0000 BP=0000 SI=0004 DI=0000


DS=0B37 ES=0B27 SS=0B37 CS=0B38 IP=001E NV UP EI PL ZR NA PE NC
0B38:001E CC INT 3
-d 0b37:0000
0B37:0000 08 14 05 0F 09 05 00 00-00 00 00 00 00 00 00 00 ................
0B37:0010 B8 37 0B 8E D8 B9 04 00-B3 79 8D 36 00 00 8A 04 .7.......y.6....
0B37:0020 3A C3 7D 02 8A D8 46 49-75 F4 88 1E 05 00 CC FC :.}...FIu.......
0B37:0030 FE C4 9E FA FE 26 8A 47-0C 2A E4 40 50 8B C3 05 .....&.G.*.@P...
0B37:0040 0C 00 52 50 E8 19 46 83-C4 04 50 8D 86 00 FF 50 ..RP..F...P....P
0B37:0050 E8 6F 70 83 C4 06 B8 CD-05 50 8D 86 00 FF 50 E8 .op......P....P.
0B37:0060 CA 0C 83 C4 04 B8 FF FF-50 8D 86 00 FF 50 8D 46 ........P....P.F
0B37:0070 80 50 E8 4D FA 83 C4 06-0A C0 75 03 E9 7B FF 5E .P.M......u..{.^
-q

(5)
DATA SEGMENT
A DB 04
B DB ?
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
MOV AX,00
MOV AL,A
MOV CL,02
DIV CL
MOV B,AL
MOV AH,00
MOV CL,00
L1:INC CL
MOV AX,0000
MOV AL,A
DIV CL
CMP AH,00
JNZ L2
INC CH
L2:CMP CL,B
JNE L1
CMP CH,01
JNE L3
MOV DH,A
MOV DL,00
JMP L4
L3:MOV DL,A
MOV DH,00
L4:MOV AH,4CH
INT 21H
CODE ENDS
END START

;OUTPUT:->
;-G CS: 0041
;
;AX=0002 BX=0000 CX=0202 DX=0004 SP=0000 BP=0000 SI=0000 DI=0000
;DS=0BA8 ES=0B98 SS=0BA8 CS=0BA9 IP=0041 NV UP EI PL NZ NA PO NC
;0BA9:0041 B44C MOV AH,4C

(6)
DATA SEGMENT
A DB 1,2,3,4,5,6,7,8,9,10
SUM DB ?
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
LEA BX,A
MOV CL,10
MOV AX,0000
L1:ADD AL,BYTE PTR[BX]
INC BX
DEC CL
CMP CL,00
JNZ L1
MOV SUM,AL
MOV BH,10
DIV BH
MOV AH,4CH
INT 21H
CODE ENDS
END START

;OUTPUT:->
;-G CS: 001E
;
;AX=0505 BX=0A0A CX=0000 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
;DS=0BA8 ES=0B98 SS=0BA8 CS=0BA9 IP=001E NV UP EI PL ZR NA PE NC
;0BA9:001E B44C MOV AH,4C
(7.1)
DATA SEGMENT
A DB 5
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
MOV AH,00
MOV AL,A
MUL A
MOV BL,AL
MUL WORD PTR A
MOV BH,AL
MOV AX,4CH
INT 21H
CODE ENDS
END START

;OUTPUT:->
;-R
;AX=0000 BX=0000 CX=002B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
;DS=0B98 ES=0B98 SS=0BA8 CS=0BA9 IP=0000 NV UP EI PL NZ NA PO NC
;0BA9:0000 B8A80B MOV AX,0BA8
;-T
;
;AX=0BA8 BX=0000 CX=002B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
;DS=0B98 ES=0B98 SS=0BA8 CS=0BA9 IP=0003 NV UP EI PL NZ NA PO NC
;0BA9:0003 8ED8 MOV DS,AX
;-T
;
;AX=0BA8 BX=0000 CX=002B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
;DS=0BA8 ES=0B98 SS=0BA8 CS=0BA9 IP=0005 NV UP EI PL NZ NA PO NC
;0BA9:0005 B400 MOV AH,00
;-T
;
;AX=00A8 BX=0000 CX=002B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
;DS=0BA8 ES=0B98 SS=0BA8 CS=0BA9 IP=0007 NV UP EI PL NZ NA PO NC
;0BA9:0007 A00000 MOV AL,[0000] DS:0000=05
;-T
;
;AX=0005 BX=0000 CX=002B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
;DS=0BA8 ES=0B98 SS=0BA8 CS=0BA9 IP=000A NV UP EI PL NZ NA PO NC
;0BA9:000A F6260000 MUL BYTE PTR [0000] DS:0000=05
;-T
;
;AX=0019 BX=0000 CX=002B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
;DS=0BA8 ES=0B98 SS=0BA8 CS=0BA9 IP=000E NV UP EI PL NZ NA PO NC
;0BA9:000E 8AD8 MOV BL,AL
;-T
;
;AX=0019 BX=0019 CX=002B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
;DS=0BA8 ES=0B98 SS=0BA8 CS=0BA9 IP=0010 NV UP EI PL NZ NA PO NC
;0BA9:0010 F7260000 MUL WORD PTR [0000] DS:0000=0005
;-T
;
;AX=007D BX=0019 CX=002B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
;DS=0BA8 ES=0B98 SS=0BA8 CS=0BA9 IP=0014 NV UP EI PL NZ NA PO NC
;0BA9:0014 8AF8 MOV BH,AL
;-T
;
;AX=007D BX=7D19 CX=002B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
;DS=0BA8 ES=0B98 SS=0BA8 CS=0BA9 IP=0016 NV UP EI PL NZ NA PO NC
;0BA9:0016 B84C00 MOV AX,004C

(7.2)
DATA SEGMENT
NUM DB ?
RES DB 10 DUP (�$�)
MSG1 DB �ENTER NUMBER : $�
MSG2 DB 10,13,�SQUARE OF NUMBER IS : $�

DATA ENDS

CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX

LEA DX,MSG1
MOV AH,9
INT 21H

MOV AH,1
INT 21H

SUB AL,30H
MOV NUM,AL
MOV AH,0

MUL NUM

LEA SI,RES
CALL HEX2DEC

LEA DX,MSG2
MOV AH,9
INT 21H

LEA DX,RES
MOV AH,9
INT 21H

MOV AH,4CH
INT 21H
CODE ENDS

HEX2DEC PROC NEAR


MOV CX,0
MOV BX,10

LOOP1: MOV DX,0


DIV BX
ADD DL,30H
PUSH DX
INC CX
CMP AX,9
JG LOOP1

ADD AL,30H
MOV [SI],AL

LOOP2: POP AX
INC SI
MOV [SI],AL
LOOP LOOP2
RET
HEX2DEC ENDP

END START

(8.1)
DATA SEGMENT
A DB 5
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
MOV AH,00
MOV AL,A
L1: DEC A
MUL A
MOV CL,A
CMP CL,01
JNZ L1
MOV AH,4CH
INT 21H
CODE ENDS
END START

;OUTPUT:->
;-G CS: 001B
;
;AX=0078 BX=0000 CX=0001 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
;DS=0BA8 ES=0B98 SS=0BA8 CS=0BA9 IP=001B NV UP EI PL ZR NA PE NC
;0BA9:001B B44C MOV AH,4C

(8.2)
DATA SEGMENT
NUM DB ?
FACT DB 1H
RES DB 10 DUP ('$')
MSG1 DB "ENTER NUMBER : $"
MSG2 DB 10,13,"RESULT : $"
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
LEA DX,MSG1
MOV AH,9
INT 21H
MOV AH,1
INT 21H
SUB AL,30H
MOV NUM,AL
MOV AH,0
MOV AL,FACT
MOV CH,0
MOV CL,NUM
LABEL1: MUL CL
LOOP LABEL1
LEA SI,RES
CALL HEX2DEC
LEA DX,MSG2
MOV AH,9
INT 21H
LEA DX,RES
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
HEX2DEC PROC NEAR
MOV CX,0
MOV BX,10
LOOP1: MOV DX,0
DIV BX
ADD DL,30H
PUSH DX
INC CX
CMP AX,9
JG LOOP1
ADD AL,30H
MOV [SI],AL
LOOP2: POP AX
INC SI
MOV [SI],AL
LOOP LOOP2
RET
HEX2DEC ENDP
END START

(9)
DATA SEGMENT
STRING1 DB 11H,22H,33H,44H,55H
MSG1 DB "FOUND$"
MSG2 DB "NOT FOUND$"
SE DB 33H
DATA ENDS

PRINT MACRO MSG


MOV AH, 09H
LEA DX, MSG
INT 21H
INT 3
ENDM

CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
MOV AL, SE
LEA SI, STRING1
MOV CX, 04H

UP:
MOV BL,[SI]
CMP AL, BL
JZ FO
INC SI
DEC CX
JNZ UP
PRINT MSG2
JMP END1

FO:
PRINT MSG1

END1:
INT 3
CODE ENDS
END START

C:\TASM>masm se.asm
Microsoft (R) Macro Assembler Version 5.00
Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.

Object filename [se.OBJ]:


Source listing [NUL.LST]:
Cross-reference [NUL.CRF]:

50346 + 450310 Bytes symbol space free

0 Warning Errors
0 Severe Errors

C:\TASM>link se.obj

Microsoft (R) Overlay Linker Version 3.60


Copyright (C) Microsoft Corp 1983-1987. All rights reserved.

Run File [SE.EXE]:


List File [NUL.MAP]:
Libraries [.LIB]:
LINK : warning L4021: no stack segment

C:\TASM>debug se.exe
-G
FOUND
AX=0924 BX=0033 CX=0002 DX=0005 SP=0000 BP=0000 SI=0002 DI=0000
DS=0B97 ES=0B87 SS=0B97 CS=0B99 IP=002D NV UP EI PL ZR NA PE NC
0B99:002D CC INT 3
-Q
SHARE THIS:

Das könnte Ihnen auch gefallen