VMCxxx ( . , VMCVAN).
1. :
a. TASM.exe ;
b. TLINK.exe ;
c. TD.exe .
2. FAR ( ).
3. FAR VMCxxx.
4. VMCxxx Shift +F4.
5. LAB1xxx.ASM.
6. VMCxxx F4 ( ).
7. Tab. ( ).
8. .
.Model small .Stack 300h .Data Txt TXT db ! - ,$ Tabb db 33,66,99 db 47,74,55 Tabb1 db 33h,66h,99h db 3Ah,6Bh,9Ch Tabw dw 7721,1345 dw 4774,1536 Tabw1 dw 7721h,1345h dw 3A6Bh,0AD2h .Code Beg: Mov AX,@data Mov DS,AX | ( small). 768 . . . . , . , . , () . , () . ( ). @- , data . Beg . DS. DS . . |
Lea DX,Txt Mov Ah,09h Int 21h Mov AL,Tabb Mov AH,Tabb+1 Mov BL,Tabb+2 Mov BH,Tabb+3 Mov DL,Tabb+5 Mov AL,Tabb1 Mov AH,Tabb1+1 Mov BL,Tabb1+2 Mov BH,Tabb1+3 Mov CX,Tabw Mov DX,Tabw+2 Mov BX,Tabw1+2; Mov AX,Tabw1+6; Xchg AX,BX; Xchg CL,DH; Mov Ah,4Ch; Int 21h End Beg; | DX . Ah 09h . , 09h ( ). Mov (-) Tabb , AL. Tabb. BL Tabb. Tabb. DL Tabb. al,ah,bl,bh,cx,dx Tabb, Tabb1, Tabw, Tabw1. cx,dx,bx,a, Tabb, Tabb1. Tabw, Tabw. - AX,BX CL,DH. . |
9. , F2.
|
|
10. Esc .
11. TASM.exe.
12. Ctrl Enter (Ctrl + Enter). , TASM.exe.
13. LAB0xxx.ASM.
14. Ctrl Enter (Ctrl + Enter). , , TASM.exe LAB0xxx. ASM.
15. Enter. TASM.exe, () .
16. ( ), TASM LAB0xxx. OBJ.
17. LAB0xxx. OBJ , , .
18. Ctrl + . .
19. .
20. , Ctrl + .
21. LAB0xxx.ASM F4 ( ). .
22. ( , , ) .
23. .
24. (F2).
25. 11‒14.
26. 17‒22 LAB0xxx. OBJ.
27. LAB0xxx. OBJ .
28. TLINK.exe.
29. Ctrl Enter (Ctrl + Enter). , , TLINK.exe.
30. LAB0xxx.OBJ.
31. Ctrl Enter (Ctrl + Enter). , TLINK.exe LAB0xxx.OBJ.
32. Enter. LAB0xxx.EXE.
33. LAB0xxx.EXE Enter. . Ctrl + .
34. Ctrl + .
35. TD.exe.
36. Ctrl Enter (Ctrl + Enter). , TD.exe.
37. LAB0xxx.exe.
38. Ctrl Enter (Ctrl + Enter). , LAB0xxx.exe.
39. Enter. .
|
|
OK . , ( 1.3).
File Edit View Run Breakpoints Data Options Window Help ── CPU 80486 ─ 1 2 3 4 5 6 7 cs: 0000 B81653 mov ax,5316 ax 5321 c=0 cs: 0003 8ED8 mov ds,ax bx 0000 z=0 cs: 0005 A05200 mov al,[0052] cx 0000 s=0 cs: 0008►8A265300 mov ah,[0053] dx 0000 o=0 cs: 000C 8A1E5400 mov bl,[0054] si 0000 p=0 cs: 0010 8A3E5500 mov bh,[0055] di 0000 a=0 cs: 0014 8A165700 mov dl,[0057] bp 0000 i=1 cs: 0018 A05800 mov al,[0058] sp 0400 d=0 cs: 001B 8A265900 mov ah,[0059] ds 5316 cs: 001F 8A1E5A00 mov bl,[005A] es 5302 cs: 0023 8A3E5B00 mov bh,[005B] ss 531D cs: 0027 A15E00 mov ax,[005E] cs 5312 cs: 002A 8B1E6000 mov bx,[0060] ip 0008 ╔═[■]═Dump══════════════════════════2═[↑][↓]═╗┤ ds:0000 8F E0 A8 A2 A5 E2 21 20 ! ▲│ ds:0008 9D E2 AE 20 AF A5 E0 A2 ds:0010 A0 EF 20 AF E0 AE A3 E0 │ ds:0018 A0 AC AC A0 20 E1 E2 E3 ▼ │ F1-Help F2-Bkpt F3-Mod F4-Here F5-Zoom F6-Next F7-Trace F8-Step F9-Run F10-Menu |
1.3 |
. , .
1.3 17 :
CS, , ;
(IP), ;
. ;
;
. ;
;
.
40. F8. , .
41. F8
.
, .
42. . View Dump. . Dump, . , , .
43. , , . , , .
44. F8 , (IP), . , .
, , , .
.
|
|
, . , , , , , . , .Model small,.Stack,.Data, db, dw,.Code , . , ‒ .
.Stack . , , 128 . 300h, 768 .
.Data . . 8 .. . db ( define byte, ). ($).
, , , . Txt.
, beg, . . , .
(DS). , (.. ) mov ( move, ) , DS.
, . " ".
. , .
, ( , ..). , .
, , (O).
, .
, OS, , , int 21h, (int - interrupt, ), .
09h, , DX , Lea DX,Txt, (Lea − Txt DX).
, , , , O, , , .
|
|
, , , $ (24h), .
. .
. , AL, AH, BL, BH , , , AX, BX, CX, DX, () . .
.
- .
-, , .
-, , .
O 4Ch. 4Ch A O int 2In.
End . . Beg ( ).