⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 peripheral_test.objdump

📁 基于fpga和sopc的用VHDL语言编写的EDA的32位Nios CPU嵌入式系统及其DMA设计俄罗斯方块游戏机
💻 OBJDUMP
📖 第 1 页 / 共 5 页
字号:

peripheral_test.out:     file format elf32-nios

Disassembly of section .text:

00800000 <nr_jumptostart>:
  800000:	da 98       	pfx %hi(0x1b40)
  800002:	c0 37       	movi %g0,0x1e
  800004:	02 98       	pfx %hi(0x40)
  800006:	00 6c       	movhi %g0,0x0
  800008:	c0 7f       	jmp %g0
  80000a:	00 30       	nop
  80000c:	4e 69       	ext16d %sp,%o2
  80000e:	6f 73       	usr0 %o7,%i3

00800010 <DoUARTMenu>:
#include "excalibur.h"


void DoUARTMenu(void)
	{
  800010:	17 78       	save %sp,0x17
	char c;
menu:
	MenuBegin("UART Menu");
  800012:	0a 9a       	pfx %hi(0x4140)
  800014:	08 37       	movi %o0,0x18
  800016:	04 98       	pfx %hi(0x80)
  800018:	08 6c       	movhi %o0,0x0
  80001a:	b9 98       	pfx %hi(0x1720)
  80001c:	01 36       	movi %g1,0x10
  80001e:	02 98       	pfx %hi(0x40)
  800020:	01 6c       	movhi %g1,0x0
  800022:	e1 7f       	call %g1
  800024:	00 30       	nop
	MenuEntry('a',"Send Lots");
  800026:	03 98       	pfx %hi(0x60)
  800028:	33 34       	movi %l3,0x1
  80002a:	0b 9a       	pfx %hi(0x4160)
  80002c:	89 34       	movi %o1,0x4
  80002e:	04 98       	pfx %hi(0x80)
  800030:	09 6c       	movhi %o1,0x0
  800032:	ba 98       	pfx %hi(0x1740)
  800034:	30 36       	movi %l0,0x11
  800036:	02 98       	pfx %hi(0x40)
  800038:	10 6c       	movhi %l0,0x0
  80003a:	f0 7f       	call %l0
  80003c:	68 32       	mov %o0,%l3
	MenuEntry('b',"Receive Chars");
  80003e:	03 98       	pfx %hi(0x60)
  800040:	52 34       	movi %l2,0x2
  800042:	0b 9a       	pfx %hi(0x4160)
  800044:	09 36       	movi %o1,0x10
  800046:	04 98       	pfx %hi(0x80)
  800048:	09 6c       	movhi %o1,0x0
  80004a:	f0 7f       	call %l0
  80004c:	48 32       	mov %o0,%l2
	MenuEntry('c',"Enable Interrupt Handler");
  80004e:	03 98       	pfx %hi(0x60)
  800050:	74 34       	movi %l4,0x3
  800052:	0c 9a       	pfx %hi(0x4180)
  800054:	09 34       	movi %o1,0x0
  800056:	04 98       	pfx %hi(0x80)
  800058:	09 6c       	movhi %o1,0x0
  80005a:	f0 7f       	call %l0
  80005c:	88 32       	mov %o0,%l4
	MenuEntry('d',"Disable Interrupt Handler");
  80005e:	03 98       	pfx %hi(0x60)
  800060:	91 34       	movi %l1,0x4
  800062:	0c 9a       	pfx %hi(0x4180)
  800064:	89 37       	movi %o1,0x1c
  800066:	04 98       	pfx %hi(0x80)
  800068:	09 6c       	movhi %o1,0x0
  80006a:	f0 7f       	call %l0
  80006c:	28 32       	mov %o0,%l1

	c = MenuEnd('a','d');
  80006e:	68 32       	mov %o0,%l3
  800070:	bb 98       	pfx %hi(0x1760)
  800072:	21 34       	movi %g1,0x1
  800074:	02 98       	pfx %hi(0x40)
  800076:	01 6c       	movhi %g1,0x0
  800078:	e1 7f       	call %g1
  80007a:	29 32       	mov %o1,%l1

	switch(c)
  80007c:	68 7c       	sext8 %o0
  80007e:	10 31       	mov %l0,%o0
  800080:	50 12       	cmp %l0,%l2
  800082:	e3 7e       	skps cc_ne
  800084:	1d 80       	br 8000c0 <DoUARTMenu+0xb0>
  800086:	00 30       	nop
  800088:	50 12       	cmp %l0,%l2
  80008a:	e8 7e       	skps cc_le
  80008c:	07 80       	br 80009c <DoUARTMenu+0x8c>
  80008e:	00 30       	nop
  800090:	70 12       	cmp %l0,%l3
  800092:	e3 7e       	skps cc_ne
  800094:	0d 80       	br 8000b0 <DoUARTMenu+0xa0>
  800096:	00 30       	nop
  800098:	29 80       	br 8000ec <DoUARTMenu+0xdc>
  80009a:	00 30       	nop
  80009c:	90 12       	cmp %l0,%l4
  80009e:	e3 7e       	skps cc_ne
  8000a0:	17 80       	br 8000d0 <DoUARTMenu+0xc0>
  8000a2:	00 30       	nop
  8000a4:	30 12       	cmp %l0,%l1
  8000a6:	e3 7e       	skps cc_ne
  8000a8:	1b 80       	br 8000e0 <DoUARTMenu+0xd0>
  8000aa:	00 30       	nop
  8000ac:	1f 80       	br 8000ec <DoUARTMenu+0xdc>
  8000ae:	00 30       	nop
		{
		MenuCase('a',DoUARTSendLots);
  8000b0:	03 98       	pfx %hi(0x60)
  8000b2:	a1 37       	movi %g1,0x1d
  8000b4:	02 98       	pfx %hi(0x40)
  8000b6:	01 6c       	movhi %g1,0x0
  8000b8:	e1 7f       	call %g1
  8000ba:	00 30       	nop
  8000bc:	17 80       	br 8000ec <DoUARTMenu+0xdc>
  8000be:	00 30       	nop
		MenuCase('b',DoUARTReceiveChars);
  8000c0:	07 98       	pfx %hi(0xe0)
  8000c2:	61 35       	movi %g1,0xb
  8000c4:	02 98       	pfx %hi(0x40)
  8000c6:	01 6c       	movhi %g1,0x0
  8000c8:	e1 7f       	call %g1
  8000ca:	00 30       	nop
  8000cc:	0f 80       	br 8000ec <DoUARTMenu+0xdc>
  8000ce:	00 30       	nop
		MenuCase('c',DoUARTEnableInterruptHandler);
  8000d0:	09 98       	pfx %hi(0x120)
  8000d2:	c1 36       	movi %g1,0x16
  8000d4:	02 98       	pfx %hi(0x40)
  8000d6:	01 6c       	movhi %g1,0x0
  8000d8:	e1 7f       	call %g1
  8000da:	00 30       	nop
  8000dc:	07 80       	br 8000ec <DoUARTMenu+0xdc>
  8000de:	00 30       	nop
		MenuCase('d',DoUARTDisableInterruptHandler);
  8000e0:	0b 98       	pfx %hi(0x160)
  8000e2:	e1 36       	movi %g1,0x17
  8000e4:	02 98       	pfx %hi(0x40)
  8000e6:	01 6c       	movhi %g1,0x0
  8000e8:	e1 7f       	call %g1
  8000ea:	00 30       	nop
		}
	
	if(c != 'q')
  8000ec:	03 98       	pfx %hi(0x60)
  8000ee:	30 16       	cmpi %l0,0x11
  8000f0:	e2 7e       	skps cc_eq
  8000f2:	8f 87       	br 800012 <DoUARTMenu+0x2>
  8000f4:	00 30       	nop
		goto menu;
	}
  8000f6:	df 7f       	ret
  8000f8:	a0 7d       	restore

008000fa <DoUARTSendLots>:

#define kLineWidth 77
#define kLineCount 100

void DoUARTSendLots(void)
	{
  8000fa:	17 78       	save %sp,0x17
	char c;
	int i,j;
	int mix;

	printf("\n\nPress character, or <space> for mix: ");
  8000fc:	0d 9a       	pfx %hi(0x41a0)
  8000fe:	08 37       	movi %o0,0x18
  800100:	04 98       	pfx %hi(0x80)
  800102:	08 6c       	movhi %o0,0x0
  800104:	d9 98       	pfx %hi(0x1b20)
  800106:	c1 37       	movi %g1,0x1e
  800108:	02 98       	pfx %hi(0x40)
  80010a:	01 6c       	movhi %g1,0x0
  80010c:	e1 7f       	call %g1
  80010e:	00 30       	nop
	while((c = rGetChar()) < 0)
  800110:	0c 98       	pfx %hi(0x180)
  800112:	52 36       	movi %l2,0x12
  800114:	02 98       	pfx %hi(0x40)
  800116:	12 6c       	movhi %l2,0x0
  800118:	f2 7f       	call %l2
  80011a:	00 30       	nop
  80011c:	11 31       	mov %l1,%o0
  80011e:	11 74       	ext8s %l1,0x0
  800120:	21 32       	mov %g1,%l1
  800122:	01 74       	ext8s %g1,0x0
  800124:	61 7c       	sext8 %g1
  800126:	30 30       	mov %l0,%g1
  800128:	10 14       	cmpi %l0,0x0
  80012a:	e6 7e       	skps cc_ge
  80012c:	f5 87       	br 800118 <DoUARTSendLots+0x1e>
  80012e:	00 30       	nop
		;
	
	printf("%c\n\n",c);
  800130:	0f 9a       	pfx %hi(0x41e0)
  800132:	08 34       	movi %o0,0x0
  800134:	04 98       	pfx %hi(0x80)
  800136:	08 6c       	movhi %o0,0x0
  800138:	d9 98       	pfx %hi(0x1b20)
  80013a:	c1 37       	movi %g1,0x1e
  80013c:	02 98       	pfx %hi(0x40)
  80013e:	01 6c       	movhi %g1,0x0
  800140:	e1 7f       	call %g1
  800142:	09 32       	mov %o1,%l0

	// Don't spew unprintables!
	if(c < 32)
  800144:	f0 17       	cmpi %l0,0x1f
  800146:	e8 7e       	skps cc_le
  800148:	08 80       	br 80015a <DoUARTSendLots+0x60>
  80014a:	12 32       	mov %l2,%l0
		c = '.';
  80014c:	01 98       	pfx %hi(0x20)
  80014e:	d1 35       	movi %l1,0xe
  800150:	21 32       	mov %g1,%l1
  800152:	01 74       	ext8s %g1,0x0
  800154:	61 7c       	sext8 %g1
  800156:	30 30       	mov %l0,%g1

	mix = c==' ';
  800158:	12 32       	mov %l2,%l0
  80015a:	01 98       	pfx %hi(0x20)
  80015c:	12 44       	xor %l2,0x0
  80015e:	52 7c       	abs %l2
  800160:	32 0c       	dec %l2
  800162:	f2 27       	lsri %l2,0x1f

	for(i = 0; i < kLineCount; i++)
  800164:	14 34       	movi %l4,0x0
  800166:	f5 98       	pfx %hi(0x1ea0)
  800168:	95 37       	movi %l5,0x1c
  80016a:	02 98       	pfx %hi(0x40)
  80016c:	15 6c       	movhi %l5,0x0
  80016e:	f6 98       	pfx %hi(0x1ec0)
  800170:	96 35       	movi %l6,0xc
  800172:	02 98       	pfx %hi(0x40)
  800174:	16 6c       	movhi %l6,0x0
		{
		for(j = 0; j < kLineWidth; j++)
  800176:	02 98       	pfx %hi(0x40)
  800178:	93 35       	movi %l3,0xc
			{
			if(mix)
  80017a:	52 7f       	skprnz %l2
  80017c:	12 80       	br 8001a2 <DoUARTSendLots+0xa8>
  80017e:	08 32       	mov %o0,%l0
				{
				c++;
  800180:	31 04       	inc %l1
				if(c >= 127)
  800182:	21 32       	mov %g1,%l1
  800184:	01 74       	ext8s %g1,0x0
  800186:	61 7c       	sext8 %g1
  800188:	30 30       	mov %l0,%g1
  80018a:	03 98       	pfx %hi(0x60)
  80018c:	d0 17       	cmpi %l0,0x1e
  80018e:	e9 7e       	skps cc_gt
  800190:	08 80       	br 8001a2 <DoUARTSendLots+0xa8>
  800192:	08 32       	mov %o0,%l0
					c = 33;
  800194:	01 98       	pfx %hi(0x20)
  800196:	31 34       	movi %l1,0x1
  800198:	21 32       	mov %g1,%l1
  80019a:	01 74       	ext8s %g1,0x0
  80019c:	61 7c       	sext8 %g1
  80019e:	30 30       	mov %l0,%g1
				}
			nr_uart_txchar(c,0);
  8001a0:	08 32       	mov %o0,%l0
  8001a2:	f5 7f       	call %l5
  8001a4:	09 34       	movi %o1,0x0
  8001a6:	33 0c       	dec %l3
  8001a8:	13 14       	cmpi %l3,0x0
  8001aa:	e7 7e       	skps cc_lt
  8001ac:	e6 87       	br 80017a <DoUARTSendLots+0x80>
  8001ae:	00 30       	nop
			}
		nr_uart_txcr();
  8001b0:	f6 7f       	call %l6
  8001b2:	34 04       	inc %l4
  8001b4:	03 98       	pfx %hi(0x60)
  8001b6:	74 14       	cmpi %l4,0x3
  8001b8:	e9 7e       	skps cc_gt
  8001ba:	dd 87       	br 800176 <DoUARTSendLots+0x7c>
  8001bc:	00 30       	nop
		}
	printf("\n\n");
  8001be:	0f 9a       	pfx %hi(0x41e0)
  8001c0:	08 35       	movi %o0,0x8
  8001c2:	04 98       	pfx %hi(0x80)
  8001c4:	08 6c       	movhi %o0,0x0
  8001c6:	d9 98       	pfx %hi(0x1b20)
  8001c8:	c1 37       	movi %g1,0x1e
  8001ca:	02 98       	pfx %hi(0x40)
  8001cc:	01 6c       	movhi %g1,0x0
  8001ce:	e1 7f       	call %g1
  8001d0:	00 30       	nop
	}
  8001d2:	df 7f       	ret
  8001d4:	a0 7d       	restore

008001d6 <DoUARTReceiveChars>:


void DoUARTReceiveChars(void)
	{
  8001d6:	17 78       	save %sp,0x17
	int escCount = 0;
	char c;
	char cP;

	printf("\n\nEnter characters; five <Esc>'s to finish.\n\n");
  8001d8:	0f 9a       	pfx %hi(0x41e0)
  8001da:	88 35       	movi %o0,0xc
  8001dc:	04 98       	pfx %hi(0x80)
  8001de:	08 6c       	movhi %o0,0x0
  8001e0:	d9 98       	pfx %hi(0x1b20)
  8001e2:	d0 37       	movi %l0,0x1e
  8001e4:	02 98       	pfx %hi(0x40)
  8001e6:	10 6c       	movhi %l0,0x0
  8001e8:	f0 7f       	call %l0
  8001ea:	11 34       	movi %l1,0x0

	while(escCount < 5)
  8001ec:	0c 98       	pfx %hi(0x180)
  8001ee:	52 36       	movi %l2,0x12
  8001f0:	02 98       	pfx %hi(0x40)
  8001f2:	12 6c       	movhi %l2,0x0
		{
		while(( c = rGetChar() ) < 0)
  8001f4:	f2 7f       	call %l2
  8001f6:	00 30       	nop
  8001f8:	0a 31       	mov %o2,%o0
  8001fa:	0a 74       	ext8s %o2,0x0
  8001fc:	6a 7c       	sext8 %o2
  8001fe:	0a 14       	cmpi %o2,0x0
  800200:	e6 7e       	skps cc_ge
  800202:	f8 87       	br 8001f4 <DoUARTReceiveChars+0x1e>
  800204:	00 30       	nop
			;

		if(c == 27)
  800206:	6a 17       	cmpi %o2,0x1b
  800208:	e3 7e       	skps cc_ne
  80020a:	02 80       	br 800210 <DoUARTReceiveChars+0x3a>
  80020c:	31 04       	inc %l1
			escCount++;
		else
			escCount = 0;
  80020e:	11 34       	movi %l1,0x0

		cP = c >= 32 ? c : '.';
  800210:	01 98       	pfx %hi(0x20)
  800212:	c9 35       	movi %o1,0xe
  800214:	ea 17       	cmpi %o2,0x1f
  800216:	e9 7e       	skps cc_gt
  800218:	03 80       	br 800220 <DoUARTReceiveChars+0x4a>
  80021a:	00 30       	nop
  80021c:	09 31       	mov %o1,%o0
  80021e:	09 74       	ext8s %o1,0x0

		printf("\'%c\' 0x%02x %d\n",cP,c,c);
  800220:	10 9a       	pfx %hi(0x4200)
  800222:	88 37       	movi %o0,0x1c
  800224:	04 98       	pfx %hi(0x80)
  800226:	08 6c       	movhi %o0,0x0
  800228:	69 7c       	sext8 %o1
  80022a:	f0 7f       	call %l0
  80022c:	4b 31       	mov %o3,%o2
		}
  80022e:	91 14       	cmpi %l1,0x4
  800230:	e9 7e       	skps cc_gt
  800232:	e0 87       	br 8001f4 <DoUARTReceiveChars+0x1e>
  800234:	00 30       	nop
	}
  800236:	df 7f       	ret
  800238:	a0 7d       	restore

0080023a <MyUARTISR>:

typedef struct
	{
	np_uart *uart;
	char rxChar;
	} UARTISRContext;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -