본문 바로가기
Department/System software

시스템 소프트웨어 과제#2

by mean. 2020. 7. 14.
728x90
반응형

The R.o.K. Census provides information about the current R.o.K. population as well as approximate rates of change. Using those rates and the current R.o.K. population, write a SIC assembly program to calculate the R.o.K. population in exactly one week (7days). Your assembly program should output the result of your calculations.
( R.o.K. 인구 조사는 현재 R.o.K에 대한 정보를 제공합니다. 대략적인 변화율뿐만 아니라 인구. 이 요금과 현재 R.o.K를 사용합니다. 인구 집단의 경우 R.o.K를 계산하는 SIC 조립 프로그램을 작성하십시오. 정확히 일주일 (7 )에 인구. 어셈블리 프로그램은 계산 결과를 출력해야합니다. )

Three rates of change are provided :
( 세 가지 변화율이 제공됩니다. )

1. There is a birth every 8 minutes (8 분마다 출생이 있습니다.)

2. There is a birth every 8 minutes (12 분마다 사망)

3. There is a new immigrant every 27 minutes (27 분마다 새로운 이민자가 있습니다.)

Current (2017) R.o.K. population: 11,778

( 현재 (2017) R.o.K. 인구 : 11,778 )


SIC assembly program ( in exactly one week )

005 POPULATION START 0

010 FIRST LDA MEA_DAYS - 측정일수를 기준

015 MUL HOURS - 7일의 총시간을 알기위해 24를 곱함

020 MUL MINUTES - 7일 동안의 시간은 분으로 환산 - DEATH, BIRTH, IMMIG가 분을 기준으로 측정하기 때문

025 STA ALL_MINS

030 .

035 LDA ALL_MINS - DUR_DAYS * HOURS * MINUTES = ALL_MINS

040 DIV BIRTH_RATE - 8분에 한명씩 죽기 때문에 /8

045 STA BIRTH 값을 - BIRTH에 저장

050 LDA ALL_MINS - DUR_MINS를 다시 읽어 들여옴

055 DIV DEATH_RATE - 12분에 한명씩 죽기 때문에 /12 나온 결과값을

060 STA DEATH - 저장

065 LDA ALL_MINS - DUR_MINS를 다시 읽어 들여옴

070 DIV IMMIG_RATE - 27분에 한명씩 이민 오는 것을 더하기 위해 나눈값을

075 STA IMMIG - 저장

080 .

085 LDA CURP_POP - 측정하기 전 의 총 인구수가 저장된 것을 읽어들여온다.

090 ADD BIRTH - 위에서 BIRTH 계산된 값을 더한다.

095 SUB DEATH - 위에서 DEATH 계산된 값을 뺀다.

100 ADD IMMIG - 위에서 IMMIG 계산된 값을 더한다.

105 STA CALC_POP - STAN_POP + BIRTH + DEATH + IMMIG = 결과값을 저장

110 .

115 STAN_POP WORD 11778

120 CALC_POP RESW 1

125 MEA_DAYS WORD 7

130 HOURS WORD 24

135 MINUTES WORD 60

140 ALL_MINS RESW 1

145 BIRTH_RATE WORD 8

150 DEATH_RATE WORD 12

155 IMMIG_RATE WORD 27

160 BIRTH RESW 1

165 DEATH RESW 1

170 IMMIG RESW 1

175 END FIRST


변형문제 추가사항

* Extra Point 5%: Submitted before Sept. 27, 2018

* Extra Point 2%: Submitted before Oct. 2, 2018

LINE SOURCE STAEMENT COMMENTS


5 HOME START

10 LDA DATE LOAD DATE INTO REGISTER A

15 MUL #24 MULTIPLICATION 24 FROM REGISTER A

20 MUL #60 MULTIPLICATION 60 FROM REGISTER A

25 STA DATEMIN STORE IN DATEMIN

30 LDA DATEMIN LOAD DATEMIN INTO REGISTER A

35 DIV #8 DIVIDE 8 FROM REGISTER A

40 STA BIRTH STORE IN BIRTH

45 LDA DATEMIN LOAD DATEMIN INTO REGISTER A

50 DIV #12 DIVIDE 12 FROM REGISTER A

55 STA DEATH STORE IN DEATH

60 LDA DATEMIN LOAD DATEMIN INTO REGISTER A

65 DIV #27 DIVIDE 27 FROM REGISTER A

70 STA IMG STORE IN IMG

75 LDA POPUL LOAD POP INTO REGISTER A

80 ADD BIRTH ADD THE VALUE OF BIRTH

85 SUB DEATH SUBTRACT THE VALUE OF DEATH

90 ADD IMG ADD THE VALUE OF IMG

95 STA POPUL STORE IN POPUL

100 JSUB READ L<-(PC)

105 RLOOP TD DIVICE TEST INPUT DEVICE

110 JEQ RLOOP LOOP IF DEVICE IS BUSY

115 RD DIVICE READ ONE BYTE INTO REGISTER A

120 STCH RECORD, X STORE DATA BYTE INTO RECORD

125 WD DIVICE OUTPUT 1BYTE <- VALUE OF A

130 TIXR T ADD 1 TO INDEX AND COMPARE TO 3

135 JLT RLOOP LOOP IF INDEX IS LESS THAN 3

140 RSUB

145 DIVICE BYTE X'A1'

155 RECORD RESB 3

160 DATE WORD 7 ONE-WORD CONSTANT

165 POPUL WORD 11778

175 DATEMIN RESW 1 ONE-WORD VARIABLES

180 BIRTH RESW 1

185 DEATH RESW 1

190 IMG RESW 1

195 END HOME

 

 

728x90
반응형