Title: Assemble Language
1?7? ?????????
2Assemble Language
- ?????????????,?????????????????(??????????),??????
???????????????
3Assemble Language
- ???????????????????,??????????????????????????????
?????????????????? - ??????
4- ???????????????
- ?????????????????,?????????,???????????????
- ??????????????????,????????????????
5- ??
- 1. ?????(???????????????)
- 2. ????????????????
- ????????????????????????????????
6????
DATA SEGMENT ???
NUM DW 0011101000000111B NOTES
DB The result is , DATA ENDS CODE
SEGMENT ???
ASSUME CSCODE,DSDATA BEGIN
MOV AX, DATA MOV DS,AX
MOV DX,OFFSET NOTES ??????
MOV AH,9H INT 21H
MOV BX,NUM ????BX
MOV CH,4
CH??????
7????(?)
ROTATE
DISPLAY MOV CL, 4
CL?????? MOV DL, AL ??16???
ROL BX,CL
MOV AH,2 MOV AL,BL
INT 21H
AND AL,0FH AL????16??? DEC CH
ADD AL,30H ???ASCII?? JNZ
ROTATE CMP AL,9 ?09????
MOV AX,4C00H??DOS JLE DISPLAY
INT 21H
ADD AL,07H ?AF?? CODE
ENDS ?????
END
BEGIN ????
8???????
STACK SEGMENT STACK STA DB 50 DUP (?)
TOP EQU LENGTH STA STACK ENDS CODE SEGMENT
ASSUME CSCODE,DSDATA,SSSTACK STARTMOV
AX,DATA MOV DS,AX MOV
AX,STACK MOV SS, AX
MOV SP,TOP CODE
ENDS END START
97.1.2 ??????????
- 1. ??????????
- ??????????????????,???????????????????????????
?????,?????? - ?????5.0?(MASM V5.0)??,?????????????????
?????????????????128??????????????????
?????????????????????
10- ???????????,????
- ?????????????1,?????2, ??
- ??,??????(????)??????????????,????(???????)??????
- ??????????????????(????)?????????????
- ?
- A DB 20H,30H ??
-
11- ??????????,????
-
- ???????????????1,??????2??
- ??,???????(???)?????????????,????(???????)??????
- ????????
- ???????,????????????????
- ?
- L ADD AX,BX ??
-
12- ???????????????????,???????????????,??????????
- ??????????????????,????????????????
- ????????,???????????CPU??,??CPU????????????????
-
137.1.4 ????????
- 1. ????????
- 2. ?????????( ????)
- (1) ?????
- ?????????,??????????????????????
- 8086/8088CPU??????????? ?????????BCD?????(???),
??????????????BCD??,??????(???)? -
14- ?????????????
- (???????????????????????, ???????????????)
- ??????????EQU????
- ??,A EQU 7? A 7?????A???????7?
-
- ????????EQU?????????????,??????????????
- ?,A EQU 7 ??A7
- A EQU 8 (???) A8
-
15- (2) ??
- ???????????,????????????????????????????????,?????
??(DS? ES? SS? CS),??????????(DS)????(ES)? - ?????????DB?DW?DD?????????????????,????????????,??
?????????
16- ??, ?????????,
- A DB 50,60,70,80
- DW 50,60,70,80
- DD 50,60,70,80
- ?DB?DW?DD???????4???,?????????????
17- ?DB??????????????,?DW?????????????????,?DD????????
?????????,??????????????????,???DB?????????????A? - A???DB???????(?DB?????50???)????
- ????????
- ?????? ??????????
- ??????? ?????????????????
- ????? ??????????????
18- (3) ??
- ???????????,???????????
- ??????????(?????),???????????????????(CS)?,???????
????????????????,???????????????????, ????????, - MOV CX, 2
- LDEC CX
- JZ L
- L????,??JZ????????(????).
19- ????????
- ?????? ????????????????????
- ??????? ????????????????????
- ????? ??????,????????????????????????
20- (4) ??
- ????????SEGMENT?ENDS?????????,SEGMENT?ENDS???????,
????SEGMENT?ENDS?????? - ??????,ENDS????????SEGMENT????????
21- (5) ???
- ????????,??????,??????????????????????,?????????
- ????????PROC?ENDP??????????,PROC?ENDP???????,?????
PROC?ENDP?????? - ???????,ENDP????????PROC????????
- ????????,??????????
22??(???)?????
- Proc-A PROC NEAR(?FAR)
- ____________
- ??? ____________
- .
- .
- .
- ____________
- RET
- Proc-A ENDP
-
23- (6) ???????
- ?????????????????,???????????????????????????????
????????? - ????????????????
- ?????????,????( ???)????0,??,????????????,??????
,????????????????? - ??,??????????????????
-
24- ?????,??????????????,??A??????0074H,???
- A DW 1, 2, 4, 3, 4, 4 ?????4??????A4,???4
??????A10? - ???
- ???44(A4)4(0074H4)4007CH
- ???44(A10)4(0074H0AH)40082H
25- ????,????????????,????????????????????,JZ
6???????????????6,6????????????????,????????,
- DEC CX
- JZ 5
- MOV AX, 2
- LAB ...
- ????JZ???????,?JZ???2???,???MOV
???3???,??,??????,JZ????????LAB??????, ???LAB ???
263. ????????(??)?
- ????????????,?????????????????????????(??)???????(
??)????????(??)?????????????????????????? - ??????????????,???????????,?????????CPU????
- ?????????????,???????????
-
27(1) ?????
- ?????-?MOD?SHL?SHR??/?7???,??????????(???)??????
?????????????????????????,?-?????????????????????
?? - ??????????,????????????
- ??,??????,
- 124 MOD 3????1
- 10110101B SHL 2????11010100B
-
28- ???,??????,
- W1 DW 1, 2, 3, 4, 5, 6, 7
- B1 DB 10, 20, 30, 40, 50
- N1 EQU B1-W1
- N2 EQU -W1
- B2 DB 0
- ?N114,???W1???B1????????????
- N219,???W1???B2(?????)?????????????
29(2) ?????
- ??????????????,?EQ?NE?LT?GT?LE?GE?6???,???????????
?????????????????,?????????? - ?????,?????,??????,????????-1(n??1)??,??0(
n??0)??? - ??,?????
- (60H LE 70H) GE (60H LT 30H) FFFFH GE 0000H
FFFFH?
30(3) ?????
- ?NOT?AND?OR?XOR?4???,????????????,??????(???)?????
?? - ??,?????,1234H OR 2AFEH 3AFEH,
- NOT 0F0H
FF0FH - ??????,NOT 0F0H 0FH?
31(4) ????(??)???
- ??DUP????,?????(??)?????????(??),?????
- ????DUP (??1, ??2, )
- ??,??????????(165535),??1???2 ??????????,
32- ??????????
- W DW 25,8,2,3,2,3,6,8,2,3,2,3,6
- W DW 25,2 DUP(8,2,3,2,3,6)
- W DW 1 DUP(25),2 DUP(8,2 DUP(2,3),6)
- W DW 1 DUP(25),2 DUP(1 DUP(8),2 DUP(2,3),1
DUP(6)) - ???????13?????13?,????1?????????13???????,????25?
???,????(8,2,3,2,3,6)?????
33- ??????,????????????????W???,?W????W???????W??????,
W????1,???2,???2???????????????? - ?????A DB 1, 2, 5 DUP(0,1,2 DUP(3)),??A?????6????
????? .
34(5) ???(????)???
- ????????????????????????SEG?OFFSET?TYPE?LENGTH?SIZ
E?5???,??????????????????????????,???????????? - ??? SEG ??????
- ?????????????????,?A???????,?SEG
A??A???????? - ??? OFFSET ??????
- ?????????????????,?A????????OFFSET
A??A????????
35- ??? TYPE ??????
- ??????????????
- ??? LENGTH ???
- ???????,??DUP???????????? ???????
- ? ?? SIZE ???
- ???????,?TYPELENGTH???????,SIZETYPELENGTH?
-
36??TYPE?LENGTH?SIZE?????
- ??W1 DW 20 DUP(3, 10 DUP(7)),?TYPE W12,LENGTH
W120,SIZE W140 - ??W2 DW 8, 20 DUP(3, 10 DUP(7)),?TYPE
W22,LENGTH W21, SIZE W22 - ??B1 DB 20 DUP(3, 10 DUP(7)),?TYPE B11,LENGTH
B1 ,SIZE B1 - ??B2 DB 8, 20 DUP(3, 10 DUP(7)),?TYPE B2
,LENGTH B2 , SIZE B2 ?
37(6) ????(????)???
- ????????????????????????,????PTR??THIS?3???,?????
? ?????????????????????????????????????????? - ? ?? ??? PTR ?????????
- ??,??MOVBX, 5???????5??????BX?
????????????BX??,??????DS????????????5??????,?????
????BX?????????,???????
38- ??? ????? ??????
- ?????????????????,MOV AX,
ESBX?????????????ES,??????DS? - ??? THIS ???
- ????????????????????,THIS BYTE???????????????,THIS
FAR??????????????? - THIS??????????????????????????,????????THIS??????
???
39- THIS ???PTR??????????(BYTE,WORD?DWORD)?????(NEAR?F
AR)??????????????????????????????? - THIS ?????????EQU ??,?????????????????????,???????
???????????????????? - A EQU THIS BYTE
- B DD 12345678H
- ???????????B???????????,??A ?????????????
40 - ?
- .
- A EQU THIS BYTE
- B DD 12345678H
- ...
- CLD
- MOV SI, OFFSET A
- LODSB AL (DSSI),
SI SI1 -
41- DATA SEGMENT
- A EQU THIS BYTE
- B DD 12345678H
- DATA ENDS
- CODE SEGMENT
- ASSUME CSCODE, DSDATA
- START
- MOV AX,DATA
- MOV DS,AX
- CLD
- MOV SI, OFFSET A
- LODSB AL
(DSSI), SI SI1 - MOV AX,4C00H
- INT 21H
- CODE ENDS
- END START
42- ??
- START EQU THIS FAR
- MOV CX ,100
- ??,MOV ?? ???FAR ?????START,????????JMP
??????START??
43 (7) ?????
- ?SHORT?HIGH?LOW??,???????????(?????????????)??????
????????? - ? ?? SHORT ??
- ??????IP??(??-IP)????,??????(??)???
- ? ?? HIGH ????
- ???????????????,HIGH 1234H??????12H?
- ? ?? LOW ????
- ???????????????,LOW 1234H??????34H?
444. ????????
- (1) ??????
- ????????????????????,?????????????????????????????
???????????????????????????? -
- ? ?????
- ? ?????
- ? ?????
- ? ?????
-
45(2) ????????
- ??????????????????????
- ? (i) ()? ?ltgt(ii) LENGTH?WIDTH?SIZE?MASK
- (iii) (????????) (iv)
(?????????) - (v) PTR?OFFSET?SEG?TYPE?THIS (vi)
HIGH?LOW - ? (i) (??)?- (??) (ii) ?/
- (iii) MOD?SHL?SHR (iv)
? - - ? EQ?NE?LT?LE?GT?GE
- ? (i) NOT (ii) AND
(iii) OR?XOR - ? SHORT
- ??,??HIGH???????,??,
- HIGH 1234H 2 12H 2 14H
- HIGH (1234H 2) HIGH 1236H
12H
467.1.5 ???????????
- 1. ????(??????)
- ?????????????,?????????????????????,?DB?DW?DD?DF?D
Q?DT?6????? - ????????????????????????????????3?(??)?????4??????
10?????? -
47- ??,??????,
- A DB 12H, ?
- B DW ?, 3456H
- C DD 789ABCDEH
- D DB 'A', 'B', 'C', 'D'
- E DB 'ABCD'
- F DW 'AB', 'CD'
- ????????????7.4?????,DB'AB'?DW'AB'????????
48A
12
?
B
DE
C
41
D
41
E
42
F
BC
42
42
41
?
?
9A
43
43
44
56
78
44
44
43
34
?7.4 ????????????
49???
- DATA SEGMENT
- TAB DW 1,2,3,4,5,6
- ENTRY EQU 3
- DATA ENDS
- CODE SEGMENT
- ASSUME CSCODE, DSDATA
- L MOV AX, DATA
- MOV DS, AX
- MOV BX,OFFSET TAB
- ADD BX, ENTRY MOV AX,
TAB3 - MOV AX, BX
- CODE ENDS
- END L
-
- ???????,AX
502. ????(?????)
- ? ?EQU?PURGE?3????,???????????????(??)?
- (1)?? ??? ???
- ???????????,??????????????????
- (2) ?? ??? EQU ??????????
- ??????????????????,???????????????????????????
- (3) ?? PURGE ???1,???2,
- ??(??)?EQU??????,?????EQU??????????????
513. ???
- ????????3?,?SEGMENT?ENDS?ASSUME,??????????????????
?? - (1) ?? ?? SEGMENT????????'??'
- ??????????????????????????????'??'??????,?????????
????? - ? ???? ???????????????????????????4???
- BYTE ??????????XXXX XXXX XXXX XXXX XXXX(????)??
- WORD ?????????XXXX XXXX XXXX XXXX XXX0(????)??
- PARA(??) ?????????XXXX XXXX XXXX XXXX
0000(16???)?? - PAGE ?????????XXXX XXXX XXXX 0000
0000(256???)??? - ??,1?(paragraph) ?16??,1??16??256???
-
-
52? ???? ?????????????????????????6???
- PUBLIC
- STACK
- COMMON
- MEMORY
- AT???
- NONE(??)
- ???????????NONE??,?????????,?????????
- ????,???STACK????,???? ?
53- ? '??' ??????????'??'????,???????????????'??'????
???????????????????40??????(???)? - (2)?? ?? ENDS
- ??????????????????????SEGMENT????????
- (3) ?? ASSUME ?????1??1,?????2??2,
- ????????????????????,??????(?????)????????????????
?????
544. ?????????
- ????ORG?EVEN?????,???????????????????
- (1) ?? ORG ?????
- ????????????????????????,?????????????
- (2) ?? EVEN
- ????????????????????????,????????????????????
-
55- ??,???????????,
- ORG 1000H
- A DB 47H, 12H, 45H
- EVEN
- B DB 47H
- ORG 1000H ?A??????????1000H,?A????3?????,????100
0H?1001H?1002H,B??????????1003H,?EVEN????B????????
??????1004H?
56- ?????,??????????,??????EVEN ??????????,??
- DATA-SEG SEGMENT
- EVEN
- WORD-ARRAY DW 100 DUP(?)
- DATA-SEG ENDS
575. ????
- ?PROC?ENDP?????,??????????????,???????
- (1)?? ??? PROC ?????
- ?????????????????,???????????NEAR?FAR????,????????
???,???????????? - ?????????????NEAR,???????
- (2)?? ??? ENDP
- ????????????????????????PROC?????????
58??(???)?????
- Proc-A PROC NEAR(?FAR)
- ____________
- ??? ____________
- .
- .
- .
- ____________
- RET
- Proc-A ENDP
-
596. ????
- ???????????,?LABEL,????????????????????,??????????
? - ?? ?????? LABEL ?????
- LABEL?EQU THIS?????
607.???????????
- ?(MACRO)??????????????????????????????,???????????
????? - ?????????????????
Macro-name
??MACRO?ENDM?????????,????????????????????????
61- ?????????????????????,?????????????,???????
- Macro-name actual parameter list(??????????)
- ????????,????????????????
- ?????????????????????,????????????????????
62- ?1. ????????
- ???SAVEREG MACRO
- PUSH AX
- PUSH BX
- PUSH CX
- PUSH DX
- PUSH SI
- PUSH DI
- ENDM
- ??? SAVEREG
- ??? ????????(??????????)?????
?????
???
????
?????
63- ?2 ????????
- ??? FOO MACRO P1, P2, P3
- MOV AX, P1
- P2 P3
- ENDM
- ??? FOO WORD_VAR, INC, AX
- ??? MOV AX, WORD_VAR
- INC AX
64????????????????
???
???Q(x,y)
?????
X?A,y?B
Q . .
. RET
CALL Q
x?C,y?D
CALL Q
65???
?????
Q(A,B)
Q A,B
Q C,D
Q(C,D)
Q MACRO x,y
ENDM
66????????????????
1. ????????? 2. ????????????,??????,??????????,???
???????????????,???????????????,??????? 3.
??????????
677.1.3 ?????????
68??????????????
69?????
70?????????
- ???????
- ???????(ASM.EXE)
- ??????(MASM.EXE),?????????
71- ?????
- ???????????,???????
- ??????(.OBJ),????????(???????????????????????,???.
LST??)???????(??????????????????????,???.CRF??)? - ??????
72????
- ???????OBJ??????????,???????.EXE???????
- ?????????????(LINK.EXE),?OBJ?????????,????????EXE?
?????? - ????,????MAP???LIB???
73?????
74????(DEBUG.COM)
- gtDEBUG PROG.EXE
- - U (???)
- - g ???? ????
- - T ?? ????
75??????????????
Handwritten source program
EDIT Editor program
MASM assembler program
PROG1.CRF
PROG1.LST
PROG1.OBJ
Other .OBJ files
Libraries
LINK linker program
DEBUG debug program
Final debugged run module
76BIOS?DOS??
- ROM BIOS(Basic Input Output System)?????0FE00H??
?8k ROM?,?????????,????,??I/O?????????????????? - ??BIOS????,??????????I/O???????,????????????,?????
???
77????
- ??????
- ?????
- INT XXH
- ? MOV CX,0
- MOV DX,0
- MOV AH,1 ????1
- INT 1AH
????
78DOS ??(DOS ??????)
- ????21H?????,??????????????????????????,??????????
???????/????????????? - ??????????
- MOV DL, (24H) ??????
- MOV AH, 6 ??????6
- INT 21H DOS??????
79?7? ??
- ???
- 1? 5? 9? (1)(2)10?11?
-
-