IBM AT 5170 Technical Reference page 249

Table of Contents

Advertisement

IBM P.rsonal Computer MACRO Ass.mble,.
V.,.",on 2.00
1-3
TEST3 ---- 06/10/85
POST EXCEPTION INTERRUPT TESTS
06-10-85
229
OOCE E9 02CO R
: GO IF NOT
230
231
232
VERIFY 286 BOUND INSTRUCTION
233
DESCRIPTION
234
CREATE A SIGNED ARRAY
INDEX
235
WITHIN AND OUTSIDE THE LIMITS
236
{EXPECT INT 51
231
236
239
0001
240
0001 BO F4
MOV
AL,OF4H
<> <><><> <><><><><><><><>
241
0003 E6 80
OUT
MFG PORT ,AL
<><>
CHECKPO I NT
F4
<><>
242
0005 6A 48
PUSH
BYTE PTR ES TEMP
LOAD ES REGISTER
243
0007 07
POP
ES
­
24.
2 ••
;-----
CHECK BOUND FUNCTIONS CORRECTLY
2.6
247
OODEI 2B FF
SUB
01,01
; POINT BEGINNING OF THE BLOCK
248
OODA 26:
C7 05 0000
MOV
WORD PTR ES I [0 I ] ,0
;
SET FIRST WORD TO ZERO
249
OOOF 26:
C7 45 02 7FFF
MOV
WORD PTR ES:[01+2],07FFFH
;
SET SECOND TO 07FFFH
250
00E5 BO 95
MOV
AL,095H
SET [NTERRUPT 5 FLAG
251
00E7 E6 8B
OUT
DMA PAGE+OAH,AL
252
OOE9 BEl
1000
MOV
AX,ToaOH
SET AX WITH I N BOUNDS
253
OOEC 26:
62 05
BOUND
AX,DWORD PTR ES; [01]
USE THE ES SEGMENT PO INTER
254
OOEF 2B C9
SUB
CX,CX
WA I T FOR POSS I BLE
[NTERRUPT
255
OOF
I
E2 FE
LOOPA:
LOOP
LOOPA
256
OOF3 E4 8B
IN
AL,OMA PAGE+QAH
GET THE RESULTS
257
OOF5 3C 00
CMP
AL,O
-
DID AN INTERRUPT OCCUR?
258
00F7 75 03
T7
7
CONT I NUE I F NOT
"NZ
259
00F9 E9 02CO R
"MP
ERROR_EX I T
GO
IF YES
260
261
CHECK LOW BOUND WORD CAUSES
INTERRUPT 5
262
OOFC
263
OOFC 2B FF
SUB
01,01
PO I NT BEG
I
NN 1NG OF THE BLOCK
264
OOFE 26: C7 05 3FFO
MOV
WORD PTR ES: (0
I]
,03FFOH
SET FIRST WORD TO 03FFOH
265
a
I 03 BB 1000
MOV
AX,loaOH
SET AX OUT OF 80UNDS
266
0106 26:
6205
BOUND
AX,OWORD PTR ES: [01]
267
0109 2B C9
SUB
CX,CX
WA I T FOR POSS I BLE
1 NTERRUPT
268
0108
LOOPB:
269
Oi08 E4 88
IN
AL,DMA PAGE+OAH
GET THE RESULTS
270
0100 3C 00
eMP
AL,OH -
DID AN I NTERRUPT OCCUR?
271
OIOF EO FA
LOOPNZ
LOOPB
TRY AGAIN
272
0 I I I
74
03
OZ
716
CONT I NUE I F INTERRUPT
213
0113 E9 02CD R
"MP
ERROR_EXIT
GO I F NO INTERRUPT
214
27,
;-----
CHECK HIGH BOUND WORD CAUSES
INTERRUPT 5
276
277
0116 BO 95
T7_8:
MOV
AL,95H
SET FLAG FOR
INTERRUPT
278
0118 E6 88
OUT
DMA_PAGE+OAH, AL
27.
28001lA2BFF
SUB
Ol,Dl
I PO I NT BEG I NN I NG OF THE BLOCK
281
OIIC 26: C1 05 0000
MOV
SET FIRST WORD TO 0
282
0121
26~
C1 45 02 OFFF
MOV
:g:~ ~~~ ~~;lg:!2~.OFFFH:
SET SECOND TO OFFFH
283
0127 B8
1000
MOV
AX, 1000H
I
SET AX OUT OF BOUNDS
284
012A 26:
6205
BOUND
AX,DWORD PTR ES:
[01]
285
0120 28 C9
SUB
CX,CX
WAIT FOR POSSIBLE
INTERRUPT
2E16
012F
LOOPC:
287
012F E4 8B
IN
AL,DMA PAGE+OAH
GET THE RESULTS
288
0131
3C 00
e"p
AL,OH -
0[0 AN I NTERRUPT OCCUR?
289
0133 EO FA
LOOPNZ
LOOPC
TRY AGAIN
290
0135
74 03
OZ
71.
291
0137 E9 02CD R
"MP
ERROR_EXIT
GO
[F NO INTERRUPT
2.2
2.3
;
------------ - - ---- ­
2.'
;
VERIFY PUSH ALL AND POP ALL INSTRUCTIONS:
2 ••
; DESCRIPTION
296
SET REGISTERS TO A KNOWN VALUE AND
:
2.7
PUSH ALL.
RESET THE REGISTERS, POP ALL:
2.6
AND VERIFY
2 ••
;
-------------
---------- ­
300
301
013A
302
013A BO F5
MOV
AL,OF5H
<><> <> <> <><> <> <> <> <> <><>
303
0
I
3C E6 80
OUT
MFG PORT, AL
<><>
CHECKPO
I
NT
304
0
I
3E B8 000 1
"OV
AX,OI
SET AX= I
305
0141
8808
"OV
BX,AX
SET BX=2
306
0143 43
INC
BX
307
0144 8B CB
MOV
CX,BX
SET CX=3
308
014641
INC
CX
309
0141 8B 01
MOV
DX,CX
310
014942
INC
OX
SET OX=4
311
Q14A8BFA
MOV
OJ ,OX
312
014C 41
INC
01
SET 0[=5
313
0140 8B F1
MOV
S I
,OJ
314
014F 46
INC
51
SET SI =6
315
015055
PUSH
BP
SAVE THE
(BP)
ERROR FLAG REGISTER
316
0151
8B EE
MOV
BP,S [
SET BP=1
317
015345
INC
BP
318
0154 60
PUSHA
I SSUE THE PUSH ALL COMMAND
319
0155 28 CO
SUB
AX,AX
CLEAR ALL REG I STERS
320
0157 8B 08
MOV
BX,AX
321
0
I
59 8B C8
MOV
CX,AX
322
0
I
58 88 DO
MOV
DX,AX
323
0
I
50 88 F8
MOV
OI,AX
324
015F 8B Fa
MOV
S I,AX
325
0161
8B E8
"OV
BP,AX
326
0163 61
POPA
GET THE REG I STERS BACK
327
0
I
64 83 FD 07
CMP
BP,07
BP SHOULD BE 7
328
0161 50
POP
BP
RESTORE
(BPI
ERROR FLAG REGISTER
329
0168 75
IE
oN>
ERROR_EX I T I
GO
IF NOT
330
016A 3D 0001
CMP
AX,O!
AX SHOULD BE
I
331
016075
19
"NZ
ERROR EXIT!
GO
IF NOT
332
016F 83 FB 02
CMP
BX,02-
8X SHOULD BE 2
333
0172 15
14
"NZ
ERROR EXIT!
GO
[F NOT
334
0174 83 F9 03
eMP
CX,03-
ex
SHOULD BE 3
335
0 I 77 75 OF
"NZ
ERROR_EXITI
GO
IF NOT
336
0179 83 FA 04
CMP
DX,04
OX SHOULD BE 4
337
017C 75 OA
"NZ
ERROR_EX I T 1
GO IF NOT
338
017E 83 FF 05
CMP
01,05
OJ
SHOULD BE 5
339
0161
75 05
JNZ
ERROR EXITI
GO
IF NOT
340
0 I
83 83 FE 06
eMP
51,06-
5 I SHOULD BE Eo
341
0 I 86 74 03
JZ
T1_10
CONTINUE IF IT IS
342
TEST3 5-77

Advertisement

Table of Contents
loading

Table of Contents