80x86 Assembly III 1 Systems Design & Programming...80x86 Assembly III CMPE 310 4 (Mar. 1, 2002)...
Transcript of 80x86 Assembly III 1 Systems Design & Programming...80x86 Assembly III CMPE 310 4 (Mar. 1, 2002)...
![Page 1: 80x86 Assembly III 1 Systems Design & Programming...80x86 Assembly III CMPE 310 4 (Mar. 1, 2002) UMBC U M B C U N I V E R S I T Y O F M A R Y L A N D B A L T I M O R E OC U N T Y 1](https://reader035.fdocuments.in/reader035/viewer/2022071302/60a752da368d822a4b2b6210/html5/thumbnails/1.jpg)
Syst
ems
Des
ign
& P
rogr
amm
ing
80x8
6 A
ssem
bly
III
CM
PE 3
10
1(M
ar. 1
, 200
2)U
MB
CU
M B
C
UNIVERSITY OF M
AR
YL
AN
D B
ALTIM
ORE COUNTY
1 9
6 6
![Page 2: 80x86 Assembly III 1 Systems Design & Programming...80x86 Assembly III CMPE 310 4 (Mar. 1, 2002) UMBC U M B C U N I V E R S I T Y O F M A R Y L A N D B A L T I M O R E OC U N T Y 1](https://reader035.fdocuments.in/reader035/viewer/2022071302/60a752da368d822a4b2b6210/html5/thumbnails/2.jpg)
Syst
ems
Des
ign
& P
rogr
amm
ing
80x8
6 A
ssem
bly
III
CM
PE 3
10
2(M
ar. 1
, 200
2)U
MB
CU
M B
C
UNIVERSITY OF M
AR
YL
AN
D B
ALTIM
ORE COUNTY
1 9
6 6
Stac
k In
stru
ctio
ns
![Page 3: 80x86 Assembly III 1 Systems Design & Programming...80x86 Assembly III CMPE 310 4 (Mar. 1, 2002) UMBC U M B C U N I V E R S I T Y O F M A R Y L A N D B A L T I M O R E OC U N T Y 1](https://reader035.fdocuments.in/reader035/viewer/2022071302/60a752da368d822a4b2b6210/html5/thumbnails/3.jpg)
Syst
ems
Des
ign
& P
rogr
amm
ing
80x8
6 A
ssem
bly
III
CM
PE 3
10
3(M
ar. 1
, 200
2)U
MB
CU
M B
C
UNIVERSITY OF M
AR
YL
AN
D B
ALTIM
ORE COUNTY
1 9
6 6
Stac
k In
stru
ctio
ns
Stack Seg
push eax
0 7 F E
AHAL
esp = esp-4
is performed
before the
PUSH
000007FA
is
new value
0 0 1 0
+Seg
Base
Paging
Trans.
FFFF6AB3
6 A B 3
F F F F
0 0 0 0
![Page 4: 80x86 Assembly III 1 Systems Design & Programming...80x86 Assembly III CMPE 310 4 (Mar. 1, 2002) UMBC U M B C U N I V E R S I T Y O F M A R Y L A N D B A L T I M O R E OC U N T Y 1](https://reader035.fdocuments.in/reader035/viewer/2022071302/60a752da368d822a4b2b6210/html5/thumbnails/4.jpg)
Syst
ems
Des
ign
& P
rogr
amm
ing
80x8
6 A
ssem
bly
III
CM
PE 3
10
4(M
ar. 1
, 200
2)U
MB
CU
M B
C
UNIVERSITY OF M
AR
YL
AN
D B
ALTIM
ORE COUNTY
1 9
6 6
Add
ress
Loa
ding
Ins
truc
tion
s
ldsedi, LIST
;Loads edi and ds.
leaeax,[ebx+ecx*4+100];Loads eax with computed address.
lfsesi, DATA1
;Loads esi and fs.
![Page 5: 80x86 Assembly III 1 Systems Design & Programming...80x86 Assembly III CMPE 310 4 (Mar. 1, 2002) UMBC U M B C U N I V E R S I T Y O F M A R Y L A N D B A L T I M O R E OC U N T Y 1](https://reader035.fdocuments.in/reader035/viewer/2022071302/60a752da368d822a4b2b6210/html5/thumbnails/5.jpg)
Syst
ems
Des
ign
& P
rogr
amm
ing
80x8
6 A
ssem
bly
III
CM
PE 3
10
5(M
ar. 1
, 200
2)U
MB
CU
M B
C
UNIVERSITY OF M
AR
YL
AN
D B
ALTIM
ORE COUNTY
1 9
6 6
Add
ress
Loa
ding
Ins
truc
tion
s
mov
ebx, edi
;Move the contents of edi into ebx.
leaebx, [edi]
;Load the contents of edi into ebx.
movebx, [edi]
;Load the value at edi into ebx.
![Page 6: 80x86 Assembly III 1 Systems Design & Programming...80x86 Assembly III CMPE 310 4 (Mar. 1, 2002) UMBC U M B C U N I V E R S I T Y O F M A R Y L A N D B A L T I M O R E OC U N T Y 1](https://reader035.fdocuments.in/reader035/viewer/2022071302/60a752da368d822a4b2b6210/html5/thumbnails/6.jpg)
Syst
ems
Des
ign
& P
rogr
amm
ing
80x8
6 A
ssem
bly
III
CM
PE 3
10
6(M
ar. 1
, 200
2)U
MB
CU
M B
C
UNIVERSITY OF M
AR
YL
AN
D B
ALTIM
ORE COUNTY
1 9
6 6
Stri
ng O
pera
tion
s
![Page 7: 80x86 Assembly III 1 Systems Design & Programming...80x86 Assembly III CMPE 310 4 (Mar. 1, 2002) UMBC U M B C U N I V E R S I T Y O F M A R Y L A N D B A L T I M O R E OC U N T Y 1](https://reader035.fdocuments.in/reader035/viewer/2022071302/60a752da368d822a4b2b6210/html5/thumbnails/7.jpg)
Syst
ems
Des
ign
& P
rogr
amm
ing
80x8
6 A
ssem
bly
III
CM
PE 3
10
7(M
ar. 1
, 200
2)U
MB
CU
M B
C
UNIVERSITY OF M
AR
YL
AN
D B
ALTIM
ORE COUNTY
1 9
6 6
Stri
ng O
pera
tion
s
lodsb
;al=ds:[esi]; esi=esi+/-1
lodsd
;eax=ds:[esi]; esi=esi+/-4
es lodsb DATA1
;Override ds.
stosb
;es:[edi]=al; edi=edi+/-1
stosd
;es:[edi]=eax; edi=edi+/-4
![Page 8: 80x86 Assembly III 1 Systems Design & Programming...80x86 Assembly III CMPE 310 4 (Mar. 1, 2002) UMBC U M B C U N I V E R S I T Y O F M A R Y L A N D B A L T I M O R E OC U N T Y 1](https://reader035.fdocuments.in/reader035/viewer/2022071302/60a752da368d822a4b2b6210/html5/thumbnails/8.jpg)
Syst
ems
Des
ign
& P
rogr
amm
ing
80x8
6 A
ssem
bly
III
CM
PE 3
10
8(M
ar. 1
, 200
2)U
MB
CU
M B
C
UNIVERSITY OF M
AR
YL
AN
D B
ALTIM
ORE COUNTY
1 9
6 6
Stri
ng O
pera
tion
s
lodsw
Data Seg
1 0 0 0
A032
A 0 3 2
+/-
2
0 0 1 0
+Seg
Base
Paging
Trans.
0 0 0 0
![Page 9: 80x86 Assembly III 1 Systems Design & Programming...80x86 Assembly III CMPE 310 4 (Mar. 1, 2002) UMBC U M B C U N I V E R S I T Y O F M A R Y L A N D B A L T I M O R E OC U N T Y 1](https://reader035.fdocuments.in/reader035/viewer/2022071302/60a752da368d822a4b2b6210/html5/thumbnails/9.jpg)
Syst
ems
Des
ign
& P
rogr
amm
ing
80x8
6 A
ssem
bly
III
CM
PE 3
10
9(M
ar. 1
, 200
2)U
MB
CU
M B
C
UNIVERSITY OF M
AR
YL
AN
D B
ALTIM
ORE COUNTY
1 9
6 6
Stri
ng O
pera
tion
s
movedi, 0
;Offset 0.
movecx, 25*80
;Load count.
moveax, 0720H
;Load value to write.
rep stosw
movsb
;es:[edi]=ds:[esi]; edi+/-=1; esi+/-=1
movsd
;es:[edi]=ds:[esi]; edi+/-=4; esi+/-=4
![Page 10: 80x86 Assembly III 1 Systems Design & Programming...80x86 Assembly III CMPE 310 4 (Mar. 1, 2002) UMBC U M B C U N I V E R S I T Y O F M A R Y L A N D B A L T I M O R E OC U N T Y 1](https://reader035.fdocuments.in/reader035/viewer/2022071302/60a752da368d822a4b2b6210/html5/thumbnails/10.jpg)
Syst
ems
Des
ign
& P
rogr
amm
ing
80x8
6 A
ssem
bly
III
CM
PE 3
10
10(M
ar. 1
, 200
2)U
MB
CU
M B
C
UNIVERSITY OF M
AR
YL
AN
D B
ALTIM
ORE COUNTY
1 9
6 6
Stri
ng O
pera
tion
s
inswW1, W2
;es:[edi]=[edx]; edi+/-=2; esi+/-=2
insb
;es:[edi]=[edx]; edi+/-=1
insd
;es:[edi]=[edx]; edi+/-=4
outsb
;[edx]=ds:[esi]; esi=esi+/-1
xchgedx,
esi
;Exchange edx and esi
![Page 11: 80x86 Assembly III 1 Systems Design & Programming...80x86 Assembly III CMPE 310 4 (Mar. 1, 2002) UMBC U M B C U N I V E R S I T Y O F M A R Y L A N D B A L T I M O R E OC U N T Y 1](https://reader035.fdocuments.in/reader035/viewer/2022071302/60a752da368d822a4b2b6210/html5/thumbnails/11.jpg)
Syst
ems
Des
ign
& P
rogr
amm
ing
80x8
6 A
ssem
bly
III
CM
PE 3
10
11(M
ar. 1
, 200
2)U
MB
CU
M B
C
UNIVERSITY OF M
AR
YL
AN
D B
ALTIM
ORE COUNTY
1 9
6 6
in
al, p8
;8-bits are saved to al from I/O port p8.
outdx,
eax
;32-bits are written to port dx from eax.
inal, 61H
oral, 3
;Read port 61H (speaker).
;Set rightmost two bits.
out 61H,al
loop L1
;Time delay.
in
al, 61H
;Read port 61H.
andal, 0FCH
;Clear rightmost two bits.
out61H,
al
;Speaker off.
;Turn on the speaker.
movcx, 1000H
;Delay count.
L1:
![Page 12: 80x86 Assembly III 1 Systems Design & Programming...80x86 Assembly III CMPE 310 4 (Mar. 1, 2002) UMBC U M B C U N I V E R S I T Y O F M A R Y L A N D B A L T I M O R E OC U N T Y 1](https://reader035.fdocuments.in/reader035/viewer/2022071302/60a752da368d822a4b2b6210/html5/thumbnails/12.jpg)
Syst
ems
Des
ign
& P
rogr
amm
ing
80x8
6 A
ssem
bly
III
CM
PE 3
10
12(M
ar. 1
, 200
2)U
MB
CU
M B
C
UNIVERSITY OF M
AR
YL
AN
D B
ALTIM
ORE COUNTY
1 9
6 6
movsx
cx,
bl
;Sign-extends bl into cx
movzxeax, DATA2
;Zero extends word at DATA2 in eax.
bswapeax
2 2 3 3
0 0 1 1
1 1 0 0
3 3 2 2
cmovz
eax,
ebx;Move if Zero flag is set else do nothing.
![Page 13: 80x86 Assembly III 1 Systems Design & Programming...80x86 Assembly III CMPE 310 4 (Mar. 1, 2002) UMBC U M B C U N I V E R S I T Y O F M A R Y L A N D B A L T I M O R E OC U N T Y 1](https://reader035.fdocuments.in/reader035/viewer/2022071302/60a752da368d822a4b2b6210/html5/thumbnails/13.jpg)
Syst
ems
Des
ign
& P
rogr
amm
ing
80x8
6 A
ssem
bly
III
CM
PE 3
10
13(M
ar. 1
, 200
2)U
MB
CU
M B
C
UNIVERSITY OF M
AR
YL
AN
D B
ALTIM
ORE COUNTY
1 9
6 6
es outsb
es cmpsb
section .data
;Define a data segment.
section .text
;Define a code segment.
callprocedure_name
;Call the procedure
pushargs...
;Push the arguments on stack.
addesp, #
;Restore the stack pointer.