You are on page 1of 12

8

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
.

MOV source destination


source.

5 :

------------------------------------------mov register, register


mov DX, CX
mov register, immediate
mov BL, 100
mov register, memory
mov EBX, [count]
mov memory, register
mov [count], ESI
mov memory, immediate
mov [count], 23
: .

MOVS (MOVSB) (MOVSW)


,
SI, () DI.
:
MOVS
, SI (
) DI ( ).
.
MOV SI, OFFSET VAR1
MOV DI, OFFSET VAR2
MOVS
- SI DI VAR1
VAR2. MOVS,
VAR1 , VAR2.
MOVSB MOVSW MOVS,
, .

.
.
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
.

SUB destiny, source


source destiny .
2.5.
,
jmp .

, ().

, .
Jump
()
().
JMP, JA (JNBE), JAE (JNBE), JB (JNAE), JBE (JNA), JE (JZ), JNE (JNZ), JG (JNLE),
JGE (JNL), JL (JNGE), JLE (JNG), JC, JNC, JNO, JNP (JPO), JNS, JO, JP (JPE), JS
JMP
.
JMP destiny

.
. Goto
.
:

; Handle one case


label1: .
.
jmp done
; Handle second case
label2: .
.
jmp done
.
done:

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.

You might also like

  • Неолиберализмът
    Неолиберализмът
    Document15 pages
    Неолиберализмът
    Stanil Stoev
    No ratings yet
  • NMAP
    NMAP
    Document20 pages
    NMAP
    Stanil Stoev
    No ratings yet
  • NMAP
    NMAP
    Document20 pages
    NMAP
    Stanil Stoev
    No ratings yet
  • NMAP
    NMAP
    Document20 pages
    NMAP
    Stanil Stoev
    No ratings yet
  • Fundirane
    Fundirane
    Document152 pages
    Fundirane
    Stanil Stoev
    No ratings yet
  • Using Excel
    Using Excel
    Document20 pages
    Using Excel
    Stanil Stoev
    No ratings yet
  • Lect 09
    Lect 09
    Document10 pages
    Lect 09
    Stanil Stoev
    No ratings yet
  • Lect 03
    Lect 03
    Document8 pages
    Lect 03
    Stanil Stoev
    No ratings yet
  • Lect 04
    Lect 04
    Document5 pages
    Lect 04
    Stanil Stoev
    No ratings yet