Zelftest voor Bedrevenheid in Assembler
Als onderdeel van ons cursus-curriculum hebben wij een tweetal
assembler-testen ontwikkeld. Hiermee kunnen wij voor onze
opdrachtgevers het eind-niveau van onze cursisten beoordelen.
Een van deze testen stellen wij nu beschikbaar op het web als
zelf-test voor assembler-vaardigheden. De andere toets is beschikbaar
op aanvraag.
Deze zelftest stelt u in staat een idee te krijgen over uw
vaardigheden op het gebied van assembler. U kunt:
- de toets maken en het resultaat op gevoel beoordelen
- de toets maken en het resultaat door ons laten beoordelen
- de toets door ons laten afnemen en beoordelen
Als wij de resultaten beoordelen, dan doen wij dat aan de hand van
een standaard antwoord-set. Deze is getoetst in de praktijk en blijkt
een redelijk nauwkeurig beeld te geven van het niveau van de
kandidaten.
Voor vragen over ons cursus-aanbod of over
deze toets, de normering, of over ander toets-materiaal neemt u aub
contact op met Abe Kornelis.
Instructie en opgaven voor de zelftest.
Deze toets gaat uit van een z/OS-omgeving. Voor z/VM, z/VSE, z/TPF
en/of z/Linux kunnen wij bij desgewenst aangepast toets-materiaal
opstellen.
De toets bestaat uit 60 theorie-vragen en 3 praktijk-opgaven.
Voor de theorie-vragen heeft u twee uur de tijd. Voor de
praktijk-vragen heeft u 4 uur de tijd te verdelen als volgt:
Tijd die overblijft na het voltooien van een opdracht binnen de
gestelde tijd kan naar eigen inzicht besteed worden.
Te behalen punten:
U mag uw boeken en aantekeningen gebruiken. Beantwoord de vragen in
uw eigen bewoording; antwoorden die letterlijk zijn overgenomen worden
als onjuist aangemerkt.
Antwoorden gaarne intoetsen onder elke vraag. Uw resultaat svp zowel
electronisch als op papier inleveren.
- Wat is het verschil tussen een DSECT en een CSECT?
- Waarvoor gebruik je de LTORG instructie?
- Hoe groot is het bereik van een base register?
- Wat zijn modale instructies? Wat voor soort instructies zijn
dit?
- Wat is de relatie tussen AMODE en RMODE?
- Waarvoor gebruikt u een LOCTR?
- Hoe veel cijfers kan een packed decimal field bevatten?
Waarom?
- Waaraan dient een programma te voldoen om als reusable te kunnen
worden aangemerkt?
- Waaraan dient een programma te voldoen om als reenterable te
kunnen worden aangemerkt?
- Wat is het verschil tussen een Y-con en een S-con?
- Waarvoor dient het PSW? Noem de 4 belangrijkste velden.
- Wat is een DCB, Wat is een ACB, en wat is het verschil?
- Wat is een CDE? Waar wordt het voor gebruikt?
- Hoe verzorg je de afronding van een packed decimal number?
- Hoe komt een re-entrant programma aan ruimte voor variabelen?
- Hoe zet je een "leesbaar" getal om in een packed
decimal?
- Op welke manieren kun je een packed decimal omzetten in leesbare
tekst?
- Hoe geef je bij het formatteren van numerieke output op de
relevante instructie aan dat voorloopnullen onderdrukt moeten worden?
Hoe specificeer je welk teken de voorloopnullen moet vervangen?
- In een edit patroon kunnen speciale place holders worden
opgenomen. Geef van elke zowel de waarde als de betekenis.
- Waarin verschilt EDMK van ED en wanneer blijft dit effect
achterwege?
- Wat is het verschil tussen een index register en een base
register?
- Beschrijf exact het effect van MR 4,7
- Beschrijf exact het effect van DR 6,9
- Waarvoor zijn de eerste, tweede, en derde operand van de EQU
instructie bedoeld?
- Welke 32-bits instructies gebruiken we voor loop-control?
- Waarvoor gebruiken we ORG?
- Hoe verwissel je de inhoud van twee velden A en B in virtueel
geheugen zonder een hulp-veld te gebruiken? Idem voor twee 64-bits
registers.
- Hoe verzorg je een SHIFT over een variabel aantal bits?
- Wat doet de EX instructie? Waarvoor wordt EX veel gebruikt?
- Hoe vind je programma de inhoud van de parameter op de EXEC-card
waarmee het is aangeroepen?
- Wat betekent MACRF=GL op een DCB macro?
- Wat betekenen RECFM=VBS en RECFM=FBS?
- Wat is het verschil tussen EODAD en SYNAD?
- Wat is een V-con en wat is het verschil tussen een V-con enerzijds
en een A-con met EXTRN anderzijds?
- Wat is een Address Space? Wat is een Task?
- Vanaf je TCB kun je de PRB chain aflopen. Waarvoor zou je dat
doen?
- Wat doet de SNAP macro? Waarvoor gebruik je SNAP?
- Wat is een RDW? Wat is een BDW? Wat is het verschil?
- Waarvoor gebruik je een DCBE?
- Wat is het verschil tussen static en dynamic linkage? Geef het
belangrijkste voordeel van elke methode.
- Wat zijn de LPA en de JPA? Wat is het verschil?
- Welke macro gebruik je om het effect van de LOAD macro ongedaan te
maken?
- Wat is het verschil tussen LINK en CALL?
- Wat is een subpool? Waartoe dienen Cell Pool Services?
- Wat doet AGFR?
- Wat doet CY?
- Wat is het verschil tussen LLGT en LLILL?
- Wat doen SLAG en RLL?
- Wat is het verschil tussen HFP, BFP, en DFP?
- Wat is het verschil tussen ALRK en ALSIH?
- Wat is het verschil tussen LAAG en LOCG?
- Wat is de dead zone? Waarom heet deze zo?
- Waarvoor gebruiken we IEABRC? Hoe werkt IEABRC?
- Welke typen variabelen kennen we in macros?
- Geef aan hoe we concatenatie van SETC variabelen regelen en hoe we
substrings opgeven. Geef een voorbeeld van elk.
- Geef aan hoe we een element uit een array van SETC variabelen
aanduiden. Geef een voorbeeld. Wat is het maximale aantal dimensies
dat HLASM ondersteunt?
- Geef aan hoe we een created set symbol aanduiden. Geef een
voorbeeld.
- Wat is het verschil tussen een label en een sequence symbol?
- Welke instructie gebruiken we om een loop te realiseren tijdens
conditional assembly?
- Wat is het verschil tussen DC A(VELD) en DC AL4(VELD)
Schrijf een programma dat een JCL-parameter accepteert. Deze dient
een geldig getal te bevatten tussen 0 en 4095 inclusief. Het programma
dient deze parameter te verwerken als volgt:
- Indien een geldige waarde is opgegeven, dient het programma te
eindigen en de opgegeven waarde als returncode af te geven.
- Indien de string ontbreekt dient een user abend 101 afgegeven te
worden.
- Indien de string geen geldig geheel getal bevat dient een user
abend 102 afgegeven te worden.
- Indien het gevonden getal buiten de opgegeven range valt dient een
user abend 103 afgegeven te worden.
- Bij foutsituaties dient een duidelijk foutboodschap afgegeven te
worden.
Schrijf een zelfstandig subprogramma genaamd TOETS3 dat een
aftrekpost moet berekenen als volgt:
- Als het nominale bedrag van de aftrekpost onder een drempel-bedrag
blijft wordt de aftrekpost op nul gesteld. Het drempel-bedrag is een
percentage van het bruto inkomen; wel geldt er een minimum voor het
drempel-bedrag.
- Als het nominale bedrag van de aftrekpost boven een maximum
uitkomt, dan wordt het op dat maximum gemaximeerd. Het maximum is een
percentage van het bruto-inkomen; hierbij geldt tevens een absoluut
maximum. Bij een negatief bruto-inkomen kan geen aftrek plaats
vinden.
- Bovenstaande berekening levert een 'herzien nominaal bedrag' op.
Het aftrekbare bedrag wordt afgeleid van het herzien nominaal bedrag
door een percentage toe te passen uit een tabel. De tabel is geen
staffel; slechts één percentage is van toepassing. Dit
percentage wordt bepaald door het interval waarin het herzien
nominaal bedrag valt. De tabel is oplopend gesorteerd op
maximum-bedrag.
- Het programma dient het aftrekbare bedrag terug te geven, alle
overige velden moeten ongewijzigd blijven.
Het programma produceert een verslag-regel, die door het aanroepend
module wordt afgedrukt, en eindigt met een van de volgende
returncodes:
- 00 - aftrekbaar bedrag is groter dan nul
- 04 - aftrekbaar bedrag is nihil
- 08 - aftrekbaar bedrag niet berekend omdat:
a) input niet packed decimal of
b) geen toepasselijke tabel-entry gevonden
- 12 - overige interne fouten
Opmaakvoorschriften verslagregel:
- Opmaak nominaal bedrag: punten en komma toevoegen, voorloopnullen
onderdrukken, minstens 1 cijfer voor de komma behouden. Bij negatieve
bedragen een min-teken plaatsen voor het bedrag; min-teken en bedrag
dienen door een spatie van elkaar gescheiden te zijn.
- Opmaak aftrekbaar bedrag: punten en komma toevoegen,
voorloopnullen onderdrukken, minstens 1 cijfer voor de komma
behouden. Indien het bedrag in hele euro's luidt, dan de centen
afdrukken als twee streepjes, b.v. 12,-- voor twaalf Euro. Als het
aftrekbaar bedrag op nul uitkomt, dan "Nihil" afdrukken.
- Opmerkingen veld: begint met 5 spaties, bestemd voor
fout-meldingen. Het programma hoeft niet meer dan 1 melding af te
geven.
Als input krijgt het programma een pointer in R1 naar de volgende
parmlist:
PARM1 DC A(PARMAREA) * Pointer naar parameter-gebied
PARM2 DC A(PRTLINE) * Pointer naar buffer voor printregel
Indeling parameter-gebied:
NOMINAAL DC PL6 * Nominaal bedrag aftrekpost
RESULT DC PL6 * Berekende aftrekpost
BRUTO DC PL6 * Bruto inkomen
MINPERC DC PL2 * Percentage drempelwaarde
MINBEDR DC PL6 * Minimum bedrag drempelwaarde
MAXPERC DC PL2 * Percentage bovengrens
MAXBEDR DC PL6 * Maximum bedrag bovengrens
TABSIZE DC H * Aantal entries in de tabel
TABLEN DC H * Lengte van elke entry
TABPTR DC AL4 * Pointer naar tabel
De entries van de tabel zijn als volgt ingedeeld:
GRENS DC PL6 * Bovengrens voor dit percentage
PERC DC PL2 * Toepassingspercentage
DC CL0 * Filler tot volgende entry
De printregel is als volgt ingedeeld:
PRTNOMNL DC CL20 * Nominaal bedrag
PRTRESLT DC CL20 * Aftrekbaar bedrag
PRTOPM DC CL40 * Opmerkingen veld
Schrijf een macro DEFREGS die registernamen moet definiëren.
Deze macro accepteert maximaal vier parameters:
- Positionele parm: startnummer register-reeks
- Positionele parm: eindnummer register-reeks
- Positionele parm: telwijze dec of hex, default dec
- Keyword parm: prefix, default is R
De parameters dienen als volgt verwerkt te worden:
- Start- en eindnummers conform gebruik in STM instructie
- telwijze dec nummert de registers decimaal 0, 1, ... 14, 15
- telwijze hex nummert de registers hexadecimaal 0, 1, ... E, F
- Geldige prefixen: R, GPR, CR, AR, of FPR
- Overtollige parameters dienen tot een foutmelding te leiden
U heeft nu de opgaven gemaakt. U had daar zes uren voor. Bent u
binnen de tijd gebleven?
Als u wilt, dan kunnen we de resultaten beoordelen. Neem hiervoor
contact op met Abe Kornelis.
Let op: beoordelen kost tijd en is niet gratis.
Deze site is aangesloten bij WebRing.
Bekijkt u gerust de
lijst van mainframe-gerelateerde sites.
|
|
Dino's zijn niet dood. Ze zijn gezond en wel en leven in
computer-centra overal
om ons heen. Zij spreken in tongen en doen wonderbare magie met
computers.
Pas op voor de dino! En voor het geval u zit te wachten op het
definitieve
einde van deze dino's: onthoud dat dino's de wereld 155 miljoen
jaren hebben
geregeerd!
|
Dino's en andere anachronismen
[
Aanmelden
|
Ring Overzicht
| Willekeurig
|
<< Vorige
|
Volgende >>
]
|
Naar de Introductie.
Naar Opgave 1: Theorie.
Naar Opgave 2: Parameter-controle.
Naar Opgave 3: Bereken aftrekpost.
Naar Opgave 4: Bouw een macro.
Naar de Afronding.
Naar de nederlandse homepage.
Naar de algemene homepage.
Hieronder vindt u het logo van onze
sponsor
en logos van web-standaarden waaraan deze web-pagina voldoet.