logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

assembler dla procesora Z80

gaszczyk07 16 Paź 2009 18:09 2778 4
REKLAMA
  • #1 7136391
    gaszczyk07
    Poziom 10  
    Mam takie zadanie:
    Z uporządkowanych rosnąco wektorów o długości m i n, złożyć wektor elementów uporządkowanych rosnąco (o długości m+n)
    Pod spodem umieszczam rozwiązanie.
    Czy można by uprościć jakoś te zadanie, ewntualnie coś zmienić?


    Altair 8800 (Z80) simulator V3.5-1 (scp created Oct 19 2005 at 18:42:45 with gcc
    3.2.3 (mingw special 20030504-1))

    sim> do cpm2
    64K CP/M Version 2.2 (SIMH ALTAIR 8800, BIOS V1.23, 2 HD, 20-Oct-02)

    A>do mccl.sub Z 14119

    A>; READ AND COMPILE AN ASSEMBLER PROGRAM
    A>R Z 14119.MAC

    READ V-2.12 (02-Jul-04) SIMH Interface V002
    PTR: unit is read only
    4.75kB written.

    A>M80 Z 14119,Z 14119=Z 14119/M

    No Fatal error(s)

    A>L80 Z 14119,Z 14119/N/E

    Link-80 3.44 09-Dec-81 Copyright (c) 1981 Microsoft

    Data 0100 0161 < 97>

    47065 Bytes Free
    [0000 0161 1]

    A>ERA Z 14119.REL
    A>W Z 14119.PRN
    WRITE V-1.07 (02-Jul-04) SIMH Interface V002
    PTP: creating new file
    10.375kB written (Text).

    A>ERA Z 14119.PRN
    A>z 14119
    1234445566
    A>ddtz Z 14119.com
    DDT/Z [8101]
    High = 017F Max = 017F
    > l100, 160
    0100 LD BC,0108
    0103 LD DE,010E
    0106 JR 011E
    0108 LD BC,0402
    010B INC B
    010C DEC B
    010D LD B,03
    010F INC B
    0110 DEC B
    0111 LD B,21
    0113 LD C,01
    0115 LD A,C
    0116 CP L
    0117 RET
    0118 LD HL,0112
    011B LD A,E
    011C CP L
    011D RET
    011E CALL 0112
    0121 JR Z,014B
    0123 CALL 0118
    0126 JR Z,0136
    0128 LD A,(BC)
    0129 LD H,A
    012A LD A,(DE)
    012B LD L,A
    012C LD A,00
    012E SUB L
    012F SCF
    0130 CCF
    0131 ADD A,H
    0132 JR C,014B
    0134 JR 0136
    0136 CALL 0112
    0139 JR Z,0160
    013B LD A,(BC)
    013C ADD A,30
    013E PUSH DE
    013F PUSH BC
    0140 LD E,A
    0141 LD C,02
    0143 CALL 0005
    0146 POP BC
    0147 POP DE
    0148 INC BC
    0149 JR 011E
    014B CALL 0118
    014E JR Z,0160
    0150 LD A,(DE)
    0151 ADD A,30
    0153 PUSH DE
    0154 PUSH BC
    0155 LD E,A
    0156 LD C,02
    0158 CALL 0005
    015B POP BC
    015C POP DE
    015D INC DE
    015E JR 011E
    0160 RET
    >>t
    E A =00 BC =0108 DE =0000 HL =0000 SP=C200 PC=0103 LD DE,010E
    A'=00 BC'=0000 DE'=0000 HL'=0000 IX=0000 IY=0000 I=00
    >>t
    E A =00 BC =0108 DE =010E HL =0000 SP=C200 PC=0106 JR 011E
    A'=00 BC'=0000 DE'=0000 HL'=0000 IX=0000 IY=0000 I=00
    >>t
    E A =00 BC =0108 DE =010E HL =0000 SP=C200 PC=011E CALL 0112
    A'=00 BC'=0000 DE'=0000 HL'=0000 IX=0000 IY=0000 I=00
    >>t
    E A =00 BC =0108 DE =010E HL =0000 SP=C1FE PC=0112 LD HL,010E
    A'=00 BC'=0000 DE'=0000 HL'=0000 IX=0000 IY=0000 I=00
    >>t
    E A =00 BC =0108 DE =010E HL =010E SP=C1FE PC=0115 LD A,C
    A'=00 BC'=0000 DE'=0000 HL'=0000 IX=0000 IY=0000 I=00
    >>t
    E A =08 BC =0108 DE =010E HL =010E SP=C1FE PC=0116 CP L
    A'=00 BC'=0000 DE'=0000 HL'=0000 IX=0000 IY=0000 I=00
    >>t
    S H NCE A =08 BC =0108 DE =010E HL =010E SP=C1FE PC=0117 RET
    A'=00 BC'=0000 DE'=0000 HL'=0000 IX=0000 IY=0000 I=00
    >>t
    S H NCE A =08 BC =0108 DE =010E HL =010E SP=C200 PC=0121 JR Z,014B
    A'=00 BC'=0000 DE'=0000 HL'=0000 IX=0000 IY=0000 I=00
    >>t
    S H NCE A =08 BC =0108 DE =010E HL =010E SP=C200 PC=0123 CALL 0118
    A'=00 BC'=0000 DE'=0000 HL'=0000 IX=0000 IY=0000 I=00
    >>t
    S H NCE A =08 BC =0108 DE =010E HL =010E SP=C1FE PC=0118 LD HL,0112
    A'=00 BC'=0000 DE'=0000 HL'=0000 IX=0000 IY=0000 I=00
    >>t
    S H NCE A =08 BC =0108 DE =010E HL =0112 SP=C1FE PC=011B LD A,E
    A'=00 BC'=0000 DE'=0000 HL'=0000 IX=0000 IY=0000 I=00
    >>t
    S H NCE A =0E BC =0108 DE =010E HL =0112 SP=C1FE PC=011C CP L
    A'=00 BC'=0000 DE'=0000 HL'=0000 IX=0000 IY=0000 I=00
    >>t
    S NCE A =0E BC =0108 DE =010E HL =0112 SP=C1FE PC=011D RET
    A'=00 BC'=0000 DE'=0000 HL'=0000 IX=0000 IY=0000 I=00
    >>t
    S NCE A =0E BC =0108 DE =010E HL =0112 SP=C200 PC=0126 JR Z,0136
    A'=00 BC'=0000 DE'=0000 HL'=0000 IX=0000 IY=0000 I=00
    >>^C
    A>save 1 D 14119.com
  • REKLAMA
  • #2 7138237
    arnoldziq
    VIP Zasłużony dla elektroda
    Człowieku, to jakaś kompletna bzdura.
    A tego co pamiętam asembler Z80, przyznam że mgliście, kilka lat już minęło ale jednak coś tam jeszcze zostało, to ten program nie ma kompletnie sensu.
    Czemu mają służyć te instrukcje ?
    gaszczyk07 napisał:
    0108 LD BC,0402
    010B INC B
    010C DEC B
    010D LD B,03
    010F INC B
    0110 DEC B

    Albo to :
    gaszczyk07 napisał:
    0136 CALL 0112
    [...]
    0143 CALL 0005

    Wywołanie adresu który w twoim kodzie nie istnieje ?!? To znaczy, tak , istnieje , ale to środek instrukcji.

    Poprawcie mnie, być może się mylę, ale to jest jakaś totalna bzdura.
  • REKLAMA
  • #3 7138280
    gaszczyk07
    Poziom 10  
    to jakbyś to widział kolego?
  • REKLAMA
  • #5 7138920
    gaszczyk07
    Poziom 10  
    dzieki kolego poprzeglądam sobie
REKLAMA