Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Pass 1 : begin read first input' line if OPCODE = 'START' then begin save # [ OPERAND ] as starting address initialize LOCCTR to

Pass 1:
begin
read first input' line
if OPCODE= 'START' then
begin
save #[OPERAND] as starting address
initialize LOCCTR to starting address
write line to intermediate file
read next input line
end {if START}
else
initialize LOCCTR to 0
while OPCODE 'END' do
begin
if this is not a comment line then
begin
1f there is a symbol in the LABEL field then
begin
search SYMTAB for LABEL
if found then
set error flag (duplicate symbol)
else
insert (LABEL, LOCCTR) into SYMTAB
end {if symbol}
search OPTAB for OPCODE
if found then
add 3{instruction length} to LOCCTR
else if OPCODE = 'WORD' then
add 3 to LOCCTR
else if OPCODE = 'RESW' then
add 3*#[OPERAND] to LOCCTR
else if OPCODE = 'RESB' then
add # [OPERAND] to LOCCTR
else if OPCODE='BYTE' then
begin
find length of constant in bytes
add length to LOCCTR
end {if BYTE}
else
set error flag (invalid operation code)
end {if not a comment}
write line to intermediate file
read next input line
end (while not END}
write last line to intermediate file
save (LOCCTR - starting address) as program length
and {Pass 1}
Figure 2.4(a) Algorithm for Pass 1 of assembler.
Write c++ code for this algorithm ..please i want simple code
image text in transcribed

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Pro SQL Server Wait Statistics

Authors: Enrico Van De Laar

1st Edition

1484211391, 9781484211397

More Books

Students also viewed these Databases questions