text segment
assume cs:text, ds:data
begin:
jmp start
;------------------------
TETR_TO_HEX PROC near
and AL,0Fh
cmp AL,09
jbe NEXT
add AL,07
NEXT: add AL,30h
ret
TETR_TO_HEX endp
;-------------------------
BYTE_TO_HEX PROC near
push CX
mov AH,AL
call TETR_TO_HEX
xchg AL,AH
mov CL,4
shr AL,CL
call TETR_TO_HEX ;в AL старшая цифра
pop CX ;в AH младшая цифра
ret
BYTE_TO_HEX endp
;-------------------------
PC_TYPE PROC near
push AX
push DS
push DX
push ES
mov AX, 0F000h
mov ES, AX
mov AL, ES:[0FFFEh]
call BYTE_TO_HEX
mov perem, AX
lea DX, perem
mov AH, 09h
int 21h
pop ES
pop DX
pop DS
pop AX
ret
PC_TYPE endp
start:
mov AX, data
mov DS, AX
lea DX, pctype
mov AH, 09h
int 21h
call PC_TYPE
mov AX, 4C00h
int 21h
text ends
data segment
pctype db 'pctype is = $'
perem dw
data ends
stk segment stack
db 256 dup (0)
stk ends
end begin
PC_TYPE PROC near
push AX
push DS
push DX
push ES
mov AX, 0F000h
mov ES, AX
mov AL, ES:[0FFFEh]
call BYTE_TO_HEX
mov perem, AX
pop ES
pop DX
pop DS
pop AX
ret
PC_TYPE endp
start:
mov AX, data
mov DS, AX
call PC_TYPE
lea DX, pctype
mov AH, 09h
int 21h
mov AX, 4C00h
int 21h
text ends
data segment
pctype db 'pctype is = '
perem dw ?
db 'h$'
data ends
text segment
assume cs:text, ds:data
begin:
jmp start
;------------------------
TETR_TO_HEX PROC near
and AL,0Fh
cmp AL,09
jbe NEXT
add AL,07
NEXT: add AL,30h
ret
TETR_TO_HEX endp
;-------------------------
BYTE_TO_HEX PROC near
push CX
mov AH,AL
call TETR_TO_HEX
xchg AL,AH
mov CL,4
shr AL,CL
call TETR_TO_HEX ;в AL старшая цифра
pop CX ;в AH младшая цифра
ret
BYTE_TO_HEX endp
;-------------------------
PC_TYPE PROC near
push AX
push DS
push DX
push ES
mov AX, 0F000h
mov ES, AX
mov AL, ES:[0FFFEh]
call BYTE_TO_HEX
mov perem, AX
lea DX, perem
mov AH, 09h
int 21h
pop ES
pop DX
pop DS
pop AX
ret
PC_TYPE endp
start:
mov AX, data
mov DS, AX
lea DX, pctype
mov AH, 09h
int 21h
call PC_TYPE
mov AX, 4C00h
int 21h
text ends
data segment
pctype db 'pctype is = $'
perem dw
data ends
stk segment stack
db 256 dup (0)
stk ends
end begin
Turbo Assembler Version 4.1 27/09/12 22:17:01 Page 1
prog.asm
1 0000 text segment
2 assume cs:text, ds:data
3 0000 begin:
4 0000 EB 3C 90 jmp start
5 ;------------------------
6 0003 TETR_TO_HEX PROC near
7 0003 24 0F and AL,0Fh
8 0005 3C 09 cmp AL,09
9 0007 76 02 jbe NEXT
10 0009 04 07 add AL,07
11 000B 04 30 NEXT: add AL,30h
12 000D C3 ret
13 000E TETR_TO_HEX endp
14 ;-------------------------
15 000E BYTE_TO_HEX PROC near
16 000E 51 push CX
17 000F 8A E0 mov AH,AL
18 0011 E8 FFEF call TETR_TO_HEX
19 0014 86 C4 xchg AL,AH
20 0016 B1 04 mov CL,4
21 0018 D2 E8 shr AL,CL
22 001A E8 FFE6 call TETR_TO_HEX ;в AL старшая цифра
23 001D 59 pop CX ;в AH младшая цифра
24 001E C3 ret
25 001F BYTE_TO_HEX endp
26 ;-------------------------
27 001F PC_TYPE PROC near
28 001F 50 push AX
29 0020 1E push DS
30 0021 52 push DX
31 0022 06 push ES
32 0023 B8 F000 mov AX, 0F000h
33 0026 8E C0 mov ES, AX
34 0028 26: A0 FFFE mov AL, ES:[0FFFEh]
35 002C E8 FFDF call BYTE_TO_HEX
36 002F A3 000Dr mov perem, AX
37 0032 BA 000Dr lea DX, perem
38 0035 B4 09 mov AH, 09h
39 0037 CD 21 int 21h
40 0039 07 pop ES
41 003A 5A pop DX
42 003B 1F pop DS
43 003C 58 pop AX
44 003D C3 ret
45 003E PC_TYPE endp
46
47 003E start:
48
49 003E B8 0000s mov AX, data
50 0041 8E D8 mov DS, AX
51 0043 BA 0000r lea DX, pctype
52 0046 B4 09 mov AH, 09h
53 0048 CD 21 int 21h
54 004A E8 FFD2 call PC_TYPE
55 004D B8 4C00 mov AX, 4C00h
56 0050 CD 21 int 21h
57
Turbo Assembler Version 4.1 27/09/12 22:17:01 Page 2
prog.asm
58 0052 text ends
59 0000 data segment
60
61
62 0000 70 63 74 79 70 65 20+ pctype db 'pctype is = $'
63 69 73 20 3D 20 24
64 000D ???? perem dw ?
65
66
67
68 000F data ends
69 0000 stk segment stack
70 0000 0100*(00) db 256 dup (0)
71 0100 stk ends
72 end begin
Turbo Assembler Version 4.1 27/09/12 22:17:01 Page 3
Symbol Table
Symbol Name Type Value
??DATE Text "27/09/12"
??FILENAME Text "prog "
??TIME Text "22:17:01"
??VERSION Number 040A
@CPU Text 0101H
@CURSEG Text STK
@FILENAME Text PROG
@WORDSIZE Text 2
BEGIN Near TEXT:0000
BYTE_TO_HEX Near TEXT:000E
NEXT Near TEXT:000B
PCTYPE Byte DATA:0000
PC_TYPE Near TEXT:001F
PEREM Word DATA:000D
START Near TEXT:003E
TETR_TO_HEX Near TEXT:0003
Groups & Segments Bit Size Align Combine Class
DATA 16 000F Para none
STK 16 0100 Para Stack
TEXT 16 0052 Para none
Turbo Assembler Version 3.1 27/09/12 22:24:42 Page 1
prog.asm
1 0000 text segment
2 assume cs:text, ds:data
3 0000 begin:
4 0000 EB 3C 90 jmp start
5 ;------------------------
6 0003 TETR_TO_HEX PROC near
7 0003 24 0F and AL,0Fh
8 0005 3C 09 cmp AL,09
9 0007 76 02 jbe NEXT
10 0009 04 07 add AL,07
11 000B 04 30 NEXT: add AL,30h
12 000D C3 ret
13 000E TETR_TO_HEX endp
14 ;-------------------------
15 000E BYTE_TO_HEX PROC near
16 000E 51 push CX
17 000F 8A E0 mov AH,AL
18 0011 E8 FFEF call TETR_TO_HEX
19 0014 86 C4 xchg AL,AH
20 0016 B1 04 mov CL,4
21 0018 D2 E8 shr AL,CL
22 001A E8 FFE6 call TETR_TO_HEX ;в AL старшая цифра
23 001D 59 pop CX ;в AH младшая цифра
24 001E C3 ret
25 001F BYTE_TO_HEX endp
26 ;-------------------------
27 001F PC_TYPE PROC near
28 001F 50 push AX
29 0020 1E push DS
30 0021 52 push DX
31 0022 06 push ES
32 0023 B8 F000 mov AX, 0F000h
33 0026 8E C0 mov ES, AX
34 0028 26: A0 FFFE mov AL, ES:[0FFFEh]
35 002C E8 FFDF call BYTE_TO_HEX
36 002F A3 000Dr mov perem, AX
37 0032 BA 000Dr lea DX, perem
38 0035 B4 09 mov AH, 09h
39 0037 CD 21 int 21h
40 0039 07 pop ES
41 003A 5A pop DX
42 003B 1F pop DS
43 003C 58 pop AX
44 003D C3 ret
45 003E PC_TYPE endp
46
47 003E start:
48
49 003E B8 0000s mov AX, data
50 0041 8E D8 mov DS, AX
51 0043 BA 0000r lea DX, pctype
52 0046 B4 09 mov AH, 09h
53 0048 CD 21 int 21h
54 004A E8 FFD2 call PC_TYPE
55 004D B8 4C00 mov AX, 4C00h
56 0050 CD 21 int 21h
57
Turbo Assembler Version 3.1 27/09/12 22:24:42 Page 2
prog.asm
58 0052 text ends
59 0000 data segment
60
61
62 0000 70 63 74 79 70 65 20+ pctype db 'pctype is = $'
63 69 73 20 3D 20 24
64 000D ???? perem dw ?
65
66
67
68 000F data ends
69 0000 stk segment stack
70 0000 0100*(00) db 256 dup (0)
71 0100 stk ends
72 end begin
Turbo Assembler Version 3.1 27/09/12 22:24:42 Page 3
Symbol Table
Symbol Name Type Value
??DATE Text "27/09/12"
??FILENAME Text "prog "
??TIME Text "22:24:42"
??VERSION Number 030A
@CPU Text 0101H
@CURSEG Text STK
@FILENAME Text PROG
@WORDSIZE Text 2
BEGIN Near TEXT:0000
BYTE_TO_HEX Near TEXT:000E
NEXT Near TEXT:000B
PCTYPE Byte DATA:0000
PC_TYPE Near TEXT:001F
PEREM Word DATA:000D
START Near TEXT:003E
TETR_TO_HEX Near TEXT:0003
Groups & Segments Bit Size Align Combine Class
DATA 16 000F Para none
STK 16 0100 Para Stack
TEXT 16 0052 Para none
PC_TYPE PROC near
push DS
push DX
push ES
mov AX, 0F000h
mov ES, AX
mov AL, ES:[0FFFEh]
call BYTE_TO_HEX
pop ES
pop DX
pop DS
ret
PC_TYPE endp
start:
mov AX, data
mov DS, AX
call PC_TYPE
lea DX, pctype
mov DX:Dh, AX
mov AH, 09h
int 21h
mov AX, 4C00h
int 21h
text ends
data segment
pctype db 'pctype is = $'
;perem dw
call PC_TYPE
lea DX, pctype
mov word ptr [pctype+12], ax
mov AH, 09h
int 21h
mov DX:Dh, AX
mov DX:Dh, AX
lea DX, pctype
mov bx, dx
mov word ptr [bx+12], ax
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.