Professional Documents
Culture Documents
1.
TASM
(), Debug:
.MODEL SMALL , ,
;
.CODE , ;
.STACK , ;
END , .
:
; use ; to put comments in the assembler program
.MODEL SMALL;
.STACK ;
.CODE ;
mov ah,1h ; 1h ah
mov cx,07h ; 07h cx
int 10h ; 10h
mov ah,4ch ; 4ch ah
int 21h ; 21h
END ;
() .
(source code) :
examp1.asm. ASCII .
TASM . :
C:\>tasm exam1.asm
:
Turbo Assembler Version 2.0 Copyright (c) 1988, 1990 Borland International
Assembling file: exam1.asm
Error messages: None
Warning messages: None
Passes: 1
Remaining memory: 471k
exam1.obj.
TLINK :
C:\>tlink exam1.obj
exam1.exe,
DOS:
C:\>exam1[enter]
1.
x86 ,
, 64kb.
, ( ),
16 (). ,
- 65536 (216).
(), 65536 (),
, .
(offset).
4294967296 .
. ,
DS, ES, SS CS
.
Debug,
:
1CB0:0102 MOV AX,BX
1CB0, ,
0102 .
. .CODE, .DATA .STACK
.
. ,
10 kb ,
10 kb, a 64 kB.
2. .
,
.
, . ,
.
2.1 ()
()
() , CPU . 2.
.
;
; , ;
.
. :
-
. CPU
.
- .
CPU
.
- mov ,
. movsb,
n movsw, n
. , DS:SI
( ) ES:DI.
CPU
Register A
Register B
Load
Store
Transfer
Move
. 2.
- ()
.
. :
MOV
MOVS (MOVSB) (MOVSW)
MOV
,
.
a a :
MOV Destiny, Source
Destiny (), , Source
(), .
, a a :
- Destiny: memory. Source: accumulator
- Destiny: accumulator. Source: memory
- Destiny: segment register. Source: memory/register
- Destiny: memory/register. Source: segment register
- Destiny: register. Source: register
- Destiny: register. Source: memory
- Destiny: memory. Source: register
- Destiny: register. Source: ()
- Destiny: memory. Source: ()
:
MOV AX,0006h
MOV BX,AX
MOV AX,4C00h
INT 21H
0006H AX,
AX (0006h) BX,
4C00h AX . 4C 21h
.
5 :
.
.
LODS (LODSB) (LODSW), LAHF, LDS, LEA, LES
LODS (LODSB) (LODSW)
.
: LODS
,
SI, - AL (or AX)
SI
DF 1 2 .
:
MOV SI, OFFSET VAR1
LODS
VAR1 SI ()
AL .
LODSB LODSW ,
, ( AX).
LAHF
AH
.
.
LDS
LDS destiny, source
Source (32 ). (16 ),
- DS ,
. , -
destiny ( ).
LEA
source
LEA destiny, source
Source ,
().
:
MOV SI,OFFSET VAR1
:
LEA SI,VAR1
2.2 .
, ,
.
, ,
.
, ..
POP
() .
POP destiny
,
destiny 2 SP .
SP
. , ,
2 .
:
POP CX, POP BX, POP AX
POPF
, .
POPF
, -
.
SP
2, .
PUSH
()
PUSH source
PUSH 2 SP
, source .
2 ,
.
:
PUSH AX, PUSH BX, PUSH CX
PUSHF
()
.
PUSHF
2 SP
.
2.3.
() out,
() in.
OUT DX,AX
DX , AX
, ..
IN AX,DX
AX , DX
, ,
.
2.4.
: and, not, or xor.
, .
: add (), sub (), mul () div
().
,
. ,
DF,
( ). ,
IF sti cli instructions,
.
.
AND, NEG, NOT, OR, TEST, XOR
AND
.
AND destiny, source
Source Destiny | Destiny
----------------------------1
1
| 1
1
0
| 0
0
1
| 0
0
0
| 0
destiny .
NEG
2.
NEG destiny
2 destiny
AX 1234H, :
NEG AX
EDCCH, AX .
NOT
destiny . .
NOT destiny
, .
OR
.
OR destiny, source
destiny .
TEST
source destiny
. .
TEST destiny, source
,
and destiny.
.
XOR
.
XOR destiny, source
Source Destiny | Destiny
----------------------------1
1
| 0
1
0
| 1
0
1
| 1
0
0
| 0
.
ADC, ADD, DIV, IDIV, MUL, IMUL, SBB, SUB
ADC
.
ADC destiny, source
1 CF .
destiny .
ADD
.
ADD destiny, source
,
, destiny .
DIV
.
DIV source
source .
8 (1 ) 16- AX ,
16 () DX:AX
, DX AX .
AL AH.
, AX - DX.
IDIV
.
IDIV source
, ,
.
MUL
.
MUL source
, .
AH 8
AX 16 . 8
, AX ,
16 DX:AX .
IMUL
.
IMUL source
, ,
. ,
MOV .
SBB
.
SBB destiny, source
source destiny
CF .
32 .
SUB
.
JA (JNBE)
.
JA Label
.
, CF ZF
.
.
, .
LOOP, LOOPE, LOOPNE
LOOP
.
LOOP label
Loop CX 1
label CX 1.
LOOPE
ZF.
LOOPE label
CX 1. CX
ZF 1 label.
LOOPNE
ZF.
LOOPNE label
CX 1. ZF
label.
2.6.
.
DEC
INC
DEC
1 .
DEC destiny
1 destiny
.
INC
1 .
INC destiny
1 destiny
2.7.
.
CMP
CMPS (CMPSB) (CMPSW)
CMP
.
CMP destiny, source
source
destiny .
.
CMPS (CMPSB) (CMPSW)
.
CMP destiny, source
, source
, destiny.
DI
source, SI
destiny.
DI SI.
2.8.
.
CLC, CLD, CLI, CMC, STC, STD, STI
CLC
.
CLC
( )
.
CLD
.
CLD
.
CLI
.
CLI
,
. ,
IF=0.
CMC
() .
CMC
. if CF = 0
1, CF = 1 0.
, .
STC
.
STC
1 CF.
STD
.
STD
1.
STI
.
STI
,
. ,
IF=1.