User Tag List

Показано с 1 по 10 из 133

Тема: Ядро с 32 битами и виртуализацией

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    09.04.2009
    Адрес
    Зеленоград
    Сообщений
    449
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    429
    Поблагодарили
    196 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    Ynicky, а Z80 как эмулируется? Табличными переходами с выполнением соответствующих RISC-команд?
    Вот кусочек кода эмуляции z80:
    Код:
    ...
    	global	__main
    	align 256
    __main:
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    	lea	r1,0x00010000	;SP
    	lea	r30,0x00000000	;QR
    	lea	r25,0x00010000	;Base address of Basic48.rom
    	lea	r26,0x00020000	;Base address of IN/OUT ports
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    _z80_Reset:
    	lea	r19,0xFFFFFFFF
    	mov	r32,r19		;B
    	mov	r33,r19		;C
    	mov	r34,r19		;D
    	mov	r35,r19		;E
    	mov	r36,r19		;H
    	mov	r37,r19		;L
    	mov	r38,r19		;F
    	mov	r39,r19		;A
    	mov	r40,r19		;I
    	mov	r41,r19		;R
    	mov	r42,r19		;IXh
    	mov	r43,r19		;IXl
    	mov	r44,r19		;IYh
    	mov	r45,r19		;IYl
    	movi	r46,0x00010000	;SP
    	mov	r47,r0		;PC
    	mov	r48,r19		;B'
    	mov	r49,r19		;C'
    	mov	r50,r19		;D'
    	mov	r51,r19		;E'
    	mov	r52,r19		;H'
    	mov	r53,r19		;L'
    	mov	r54,r19		;F'
    	mov	r55,r19		;A'
    	mov	r56,r0		;IFF1
    	mov	r57,r0		;IFF2
    	mov	r58,r0		;IM
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    _z80_Cycle:
    	add	r19,r47,r25	;PC + Base Address r25
    	lbu	r19,(r19)
    	addi	r47,r47,1
    	slli	r19,r19,2
    	lea	r18,_z80_OPC
    	add	r19,r19,r18
    	jr	r19
    
    _z80_OPC:
    	br	_z80_00
    	br	_z80_01
    	br	_z80_02
    	br	_z80_03
    	br	_z80_04
    	br	_z80_05
    	br	_z80_06
    	br	_z80_07
    	br	_z80_08
    	br	_z80_09
    	br	_z80_0A
    	br	_z80_0B
    	br	_z80_0C
    	br	_z80_0D
    	br	_z80_0E
    	br	_z80_0F
    	br	_z80_10
    	br	_z80_11
    	br	_z80_12
    	br	_z80_13
    	br	_z80_14
    	br	_z80_15
    	br	_z80_16
    	br	_z80_17
    	br	_z80_18
    	br	_z80_19
    	br	_z80_1A
    	br	_z80_1B
    	br	_z80_1C
    	br	_z80_1D
    	br	_z80_1E
    	br	_z80_1F
    	br	_z80_20
    	br	_z80_21
    	br	_z80_22
    	br	_z80_23
    	br	_z80_24
    	br	_z80_25
    	br	_z80_26
    	br	_z80_27
    	br	_z80_28
    	br	_z80_29
    	br	_z80_2A
    	br	_z80_2B
    	br	_z80_2C
    	br	_z80_2D
    	br	_z80_2E
    	br	_z80_2F
    	br	_z80_30
    	br	_z80_31
    	br	_z80_32
    	br	_z80_33
    	br	_z80_34
    	br	_z80_35
    	br	_z80_36
    	br	_z80_37
    	br	_z80_38
    	br	_z80_39
    	br	_z80_3A
    	br	_z80_3B
    	br	_z80_3C
    	br	_z80_3D
    	br	_z80_3E
    	br	_z80_3F
    	br	_z80_40
    	br	_z80_41
    	br	_z80_42
    	br	_z80_43
    	br	_z80_44
    	br	_z80_45
    	br	_z80_46
    	br	_z80_47
    	br	_z80_48
    	br	_z80_49
    	br	_z80_4A
    	br	_z80_4B
    	br	_z80_4C
    	br	_z80_4D
    	br	_z80_4E
    	br	_z80_4F
    	br	_z80_50
    	br	_z80_51
    	br	_z80_52
    	br	_z80_53
    	br	_z80_54
    	br	_z80_55
    	br	_z80_56
    	br	_z80_57
    	br	_z80_58
    	br	_z80_59
    	br	_z80_5A
    	br	_z80_5B
    	br	_z80_5C
    	br	_z80_5D
    	br	_z80_5E
    	br	_z80_5F
    	br	_z80_60
    	br	_z80_61
    	br	_z80_62
    	br	_z80_63
    	br	_z80_64
    	br	_z80_65
    	br	_z80_66
    	br	_z80_67
    	br	_z80_68
    	br	_z80_69
    	br	_z80_6A
    	br	_z80_6B
    	br	_z80_6C
    	br	_z80_6D
    	br	_z80_6E
    	br	_z80_6F
    	br	_z80_70
    	br	_z80_71
    	br	_z80_72
    	br	_z80_73
    	br	_z80_74
    	br	_z80_75
    	br	_z80_76
    	br	_z80_77
    	br	_z80_78
    	br	_z80_79
    	br	_z80_7A
    	br	_z80_7B
    	br	_z80_7C
    	br	_z80_7D
    	br	_z80_7E
    	br	_z80_7F
    	br	_z80_80
    	br	_z80_81
    	br	_z80_82
    	br	_z80_83
    	br	_z80_84
    	br	_z80_85
    	br	_z80_86
    	br	_z80_87
    	br	_z80_88
    	br	_z80_89
    	br	_z80_8A
    	br	_z80_8B
    	br	_z80_8C
    	br	_z80_8D
    	br	_z80_8E
    	br	_z80_8F
    	br	_z80_90
    	br	_z80_91
    	br	_z80_92
    	br	_z80_93
    	br	_z80_94
    	br	_z80_95
    	br	_z80_96
    	br	_z80_97
    	br	_z80_98
    	br	_z80_99
    	br	_z80_9A
    	br	_z80_9B
    	br	_z80_9C
    	br	_z80_9D
    	br	_z80_9E
    	br	_z80_9F
    	br	_z80_A0
    	br	_z80_A1
    	br	_z80_A2
    	br	_z80_A3
    	br	_z80_A4
    	br	_z80_A5
    	br	_z80_A6
    	br	_z80_A7
    	br	_z80_A8
    	br	_z80_A9
    	br	_z80_AA
    	br	_z80_AB
    	br	_z80_AC
    	br	_z80_AD
    	br	_z80_AE
    	br	_z80_AF
    	br	_z80_B0
    	br	_z80_B1
    	br	_z80_B2
    	br	_z80_B3
    	br	_z80_B4
    	br	_z80_B5
    	br	_z80_B6
    	br	_z80_B7
    	br	_z80_B8
    	br	_z80_B9
    	br	_z80_BA
    	br	_z80_BB
    	br	_z80_BC
    	br	_z80_BD
    	br	_z80_BE
    	br	_z80_BF
    	br	_z80_C0
    	br	_z80_C1
    	br	_z80_C2
    	br	_z80_C3
    	br	_z80_C4
    	br	_z80_C5
    	br	_z80_C6
    	br	_z80_C7
    	br	_z80_C8
    	br	_z80_C9
    	br	_z80_CA
    	br	_z80_CB
    	br	_z80_CC
    	br	_z80_CD
    	br	_z80_CE
    	br	_z80_CF
    	br	_z80_D0
    	br	_z80_D1
    	br	_z80_D2
    	br	_z80_D3
    	br	_z80_D4
    	br	_z80_D5
    	br	_z80_D6
    	br	_z80_D7
    	br	_z80_D8
    	br	_z80_D9
    	br	_z80_DA
    	br	_z80_DB
    	br	_z80_DC
    	br	_z80_DD
    	br	_z80_DE
    	br	_z80_DF
    	br	_z80_E0
    	br	_z80_E1
    	br	_z80_E2
    	br	_z80_E3
    	br	_z80_E4
    	br	_z80_E5
    	br	_z80_E6
    	br	_z80_E7
    	br	_z80_E8
    	br	_z80_E9
    	br	_z80_EA
    	br	_z80_EB
    	br	_z80_EC
    	br	_z80_ED
    	br	_z80_EE
    	br	_z80_EF
    	br	_z80_F0
    	br	_z80_F1
    	br	_z80_F2
    	br	_z80_F3
    	br	_z80_F4
    	br	_z80_F5
    	br	_z80_F6
    	br	_z80_F7
    	br	_z80_F8
    	br	_z80_F9
    	br	_z80_FA
    	br	_z80_FB
    	br	_z80_FC
    	br	_z80_FD
    	br	_z80_FE
    	br	_z80_FF
    
    _z80_00:			;NOP
    ;;;	nop
    	br	_z80_Cycle
    _z80_01:			;LD BC,nn
    	add	r17,r47,r25	;+ Base Address r25
    	lbu	r33,0(r17)	;C
    	lb	r32,1(r17)	;B
    	addi	r47,r47,2
    	br	_z80_Cycle
    _z80_02:			;LD (BC),A
    	slli	r17,r32,8	;B
    	or	r17,r17,r33	;C
    	add	r17,r17,r25	;+ Base Address
    	sb	r39,(r17)
    	br	_z80_Cycle
    _z80_03:			;INC BC
    	slli	r17,r32,8	;B
    	or	r17,r17,r33	;C
    	addi	r17,r17,1
    	srai	r32,r17,8	;B
    	andi	r33,r17,0xFF	;C
    	br	_z80_Cycle
    _z80_04:			;INC B
    	addi	r32,r32,1
    	br	_z80_Cycle
    _z80_05:			;DEC B
    	subi	r32,r32,1
    	br	_z80_Cycle
    _z80_06:			;LD B,n
    	add	r17,r47,r25	;+ Base Address r25
    	lb	r32,(r17)
    	addi	r47,r47,1
    	br	_z80_Cycle
    ...
    Но я его до конца не отладил.

    Этот пользователь поблагодарил Ynicky за это полезное сообщение:

    Bolt(11.01.2020)

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 465
    Последнее: 03.01.2020, 07:15
  2. Ответов: 16
    Последнее: 02.08.2005, 12:20

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •