当前位置:文档之家› Bomb Lab实验报告

Bomb Lab实验报告

Bomb Lab实验报告
Bomb Lab实验报告

课程实验报告

课程名称:计算机系统原理实验

实验名称:Bomb Lab

专业班级:

姓名:

学号:

完成时间:2017.4.19

一、实验目的

熟悉汇编程序,学习gdb调试工具,熟悉并掌握函数调用过程中的栈帧结构的变化。

二、实验环境

个人PC,Linux发行版本,终端,gdb调试工具。

三、实验要求

1.本次实验为熟悉汇编程序及其调试方法的实验。

2.实验内容包含2个文件bomb(可执行文件)和bomb.c(c源文件)。

3.使用gdb工具反汇编出汇编代码,结合c语言文件找到每个关卡的入口函数。

4.分析汇编代码,找到在每个phase程序段中,引导程序跳转到

“explode_bomb”程序段的地方,并分析其成功跳转的条件,以此为突破口寻找应该在命令行输入何种字符通关。

5.本实验一共有7个关卡,包括6个普通关卡和1个隐藏关卡。要求至少通过6个普通关卡。

四、实验内容及操作步骤

(一)准备过程

1.解压文件夹得到“bomb”,“bomb.c”,“README-bomblab.txt”以及“实验基本内容与要求.txt”等文档。查看“实验基本内容与要求.txt”了解实验内容与要求后打开bomb.c文件,编译发现不能通过,代码不完整,所以bomb.c 文件只能用来作为参考。查看bomb.c文件发现控制密码正确的6个函数分别为phase_1,phase_2,phase_3,phase_4,phase_5,phase_6,因此可以对bomb文件反汇编得到汇编文本,结合汇编文本与bomb.c文本进一步分析。

2.进入Ubuntu,将bom和bomb.c文档复制到主文件目录下,ctrl+alt+t打开终端,通过“objdump -d bomb > bomb.s”命令将可执行文件反汇编成bomb.s文件,并且可以通过“gdb -q bomb”进行调试。

3.将bomb.c复制成文本后打开bomb.c查看汇编代码并进一步分析。

(二)关卡分析

1.phase_1

phase_1汇编代码及注释如下:

08048f61 :

8048f61: 55 push %ebp

8048f62: 89 e5 mov %esp,%ebp

8048f64: 83 ec 18 sub $0x18,%esp #开辟一个24

位的栈空间

8048f67: c7 44 24 04 5c a1 04 movl $0x804a15c,0x4(%esp) #

将0x804a15c存到%eap+4的位置,x/s 0x804a15c 得到 "We have to stand with our North Korean allies."

8048f6e: 08

8048f6f: 8b 45 08 mov 0x8(%ebp),%eax

8048f72: 89 04 24 mov %eax,(%esp) #将%ebp+8处的值存到%esp

8048f75: e8 31 00 00 00 call 8048fab

8048f7a: 85 c0 test %eax,%eax

8048f7c: 74 05 je 8048f83 #%eax=0则跳出函数,否则跳到爆炸函数,可以看出,调用

函数后如果两个字符串相等的话最后%eax会等于0 8048f7e: e8 4e 01 00 00 call 80490d1 8048f83: c9 leave

8048f84: c3 ret

8048f85: 90 nop

8048f86: 90 nop

8048f87: 90 nop

8048f88: 90 nop

8048f89: 90 nop

8048f8a: 90 nop

8048f8b: 90 nop

8048f8c: 90 nop

8048f8d: 90 nop

8048f8e: 90 nop

8048f8f: 90 nop

思路与分析:

通过call 8048fab 我们可以推断要求输入的

是一串字符串,movl $0x804a15c,0x4(%esp)将地址0x804a15c存到%esp+4的位置,mov 0x8(%ebp),%eax 和mov %eax,(%esp)将输入的字符串存

到%esp中,call 8048fab 调用字符串比较函数,通过比较上面位置参数%esp+4与%esp对应的字符串是否相等,将返回值存到%eax中,test %eax,%eax,je 8048f83 ,call 80490d1

,判断如果两个字符串不相等则爆炸。

由上面分析可知地址0x804a15c中存着正确的字符串,我们只要输入相同的字符串就可以通过关卡。进入gdb,通过命令x/s 0x804a15c查看该字符串为:"We have to stand with our North Korean allies."

所以phase_1的通关密码为:"We have to stand with our North Korean allies."通过 r 命令运行程序,输入该字符串则通过第一关:

结论与心得:

通过分析汇编代码,通过字符串比较函数 可以推测

输入的是一串字符串,通过x/s以字符串的形式查看地址0x804a15c所对应的值,运行程序后输入该字符串即可通过关卡。字符串比较函数主要是通过将两个字符串进行比较,将结果存到%eax中,最后判断%eax的值。第一关相对比较简单,也比较好理解。

2.phase_2

phase_2汇编代码及注释如下:

08048d6a :

8048d6a: 55 push %ebp

8048d6b: 89 e5 mov %esp,%ebp

8048d6d: 56 push %esi

8048d6e: 53 push %ebx

8048d6f: 83 ec 30 sub $0x30,%esp

8048d72: 8d 45 e0 lea -0x20(%ebp),%eax

8048d75: 89 44 24 04 mov %eax,0x4(%esp) #将第一个数字的地址放到%esp+4的位置

8048d79: 8b 45 08 mov 0x8(%ebp),%eax

8048d7c: 89 04 24 mov %eax,(%esp)

8048d7f: e8 87 03 00 00 call 804910b

#读取六个数字

8048d84: 83 7d e0 00 cmpl $0x0,-0x20(%ebp)

8048d88: 75 06 jne 8048d90 #0和-0x20(%ebp)比较,不相等就爆炸

8048d8a: 83 7d e4 01 cmpl $0x1,-0x1c(%ebp)

8048d8e: 74 05 je 8048d95 #1和-0x1c(%ebp)比较,相等就跳过爆炸

8048d90: e8 3c 03 00 00 call 80490d1

8048d95: 8d 5d e8 lea -0x18(%ebp),%ebx #将第三个数字的地址传到%ebx中,即现在%ebx中存着第三个数字的地址 8048d98: 8d 75 f8 lea -0x8(%ebp),%esi #

将%ebx的地址传到%esi,%esi用于待会的判断结束条件,%ebx存的地址一直循环加4,循环直到%ebx的下一个地址是%esi就结束】

8048d9b: 8b 43 fc mov -0x4(%ebx),%eax #将第二个数放到%eax寄存器中

8048d9e: 03 43 f8 add -0x8(%ebx),%eax #计算第二个数和第一个数的和

8048da1: 39 03 cmp %eax,(%ebx)

8048da3: 74 05 je 8048daa #前两个数的和与第三个数相比较,相等则跳过炸弹

8048da5: e8 27 03 00 00 call 80490d1 8048daa: 83 c3 04 add $0x4,%ebx #将%ebx的地

址加4,现在%ebx中存着第四个数字的地址

8048dad: 39 f3 cmp %esi,%ebx

8048daf: 75 ea jne 8048d9b #比较现在%esi和%ebx里面的值是否相等,不相等则循环,否则结束。其实两个寄存器中存的都是地址,为的是保证只输入6个数,因为当输入第7个数时,%ebx=%esi

8048db1: 83 c4 30 add $0x30,%esp

8048db4: 5b pop %ebx

8048db5: 5e pop %esi

8048db6: 5d pop %ebp #释放栈帧

8048db7: c3 ret

思路与分析:

通过call 804910b 我们可以推断出应该是要输入6个数字。通过对汇编代码进行分析知道-0x20(%ebp)存着第一个数字,-0x1c(%ebp)

存着第二个数字,依次类推。通过cmpl $0x0,-0x20(%ebp),jne 8048d90

和cmpl $0x1,-0x1c(%ebp),je 8048d95

知道第一个数字必须是0,第二个数字必须是1,否则就爆炸。命令lea

-0x18(%ebp),%ebx初始化寄存器%ebx的值,将第三个数字的地址传到%ebx

中.lea -0x8(%ebp),%esi将%ebx的地址传到%esi,%esi用于待会的判断结

束条件,%ebx存的地址一直循环加4,循环直到%ebx的下一个地址是%esi就结束,mov -0x4(%ebx),%eax将第二个数放到%eax寄存器中,add

-0x8(%ebx),%eax计算第二个数和第一个数的和,cmp %eax,(%ebx),je 8048daa 前两个数的和与第三个数相比较,相等则跳过炸弹。add $0x4,%ebx将%ebx的地址加4,现在%ebx中存着第四个数字的地址,之后%ebx

一直加4,知道循环完6个数字。通过上面的分析知道,输入的前两个数字为0

和1,后面的数字等于前面两个数字的和。所以,这六个数字为Fibonacci数列

的前六项。为0 1 1 2 3 5。输入这6个数字可通过phase_2.

结论与心得:

第二关需要弄懂栈帧结构的变化,通过add $0x4,%ebx将%ebx的地址加

4,然后判断前两个数字的和与当前位置的数是否相等。结合第一个和第二个数

字是0和1知道结果为0 1 1 2 3 5。

3.phase_3

phase_3汇编代码及注释如下:

08048ea1 :

8048ea1: 55 push %ebp

8048ea2: 89 e5 mov %esp,%ebp

8048ea4: 83 ec 28 sub $0x28,%esp

8048ea7: 8d 45 f0 lea -0x10(%ebp),%eax #第二

个数的位置

8048eaa: 89 44 24 0c mov %eax,0xc(%esp)

8048eae: 8d 45 f4 lea -0xc(%ebp),%eax #第一个数的位置

8048eb1: 89 44 24 08 mov %eax,0x8(%esp)

8048eb5: c7 44 24 04 3e a2 04 movl $0x804a23e,0x4(%esp) #通过查看0x804a23e的内容,即x/s 0x804a23e,显示为"%d %d",提示输入两个整型数

8048ebc: 08

8048ebd: 8b 45 08 mov 0x8(%ebp),%eax

8048ec0: 89 04 24 mov %eax,(%esp)

8048ec3: e8 78 f9 ff ff call 8048840

<__isoc99_sscanf@plt> #isoc99标准输入变量,应该是把输入的数字个数存在%eax里

8048ec8: 83 f8 01 cmp $0x1,%eax

8048ecb: 7f 05 jg 8048ed2 #至少输入2个数,否则爆炸

8048ecd: e8 ff 01 00 00 call 80490d1 8048ed2: 83 7d f4 07 cmpl $0x7,-0xc(%ebp)

8048ed6: 77 6b ja 8048f43 #第1个数大于7爆炸,所以,第一个数需要小于等于7

8048ed8: 8b 45 f4 mov -0xc(%ebp),%eax 将第一个数存到%eax中

8048edb: ff 24 85 a0 a1 04 08 jmp *0x804a1a0(,%eax,4) #跳转至0x804a1a0+4*%eax(存放第一个数)中的内容所指的行数p/x

*0x804a1a0+4*%eax

8048ee2: b8 00 00 00 00 mov $0x0,%eax

8048ee7: eb 53 jmp 8048f3c 8048ee9: b8 00 00 00 00 mov $0x0,%eax

8048eee: 66 90 xchg %ax,%ax

8048ef2: b8 00 00 00 00 mov $0x0,%eax #第一个数等于5的时候跳到这里

8048ef7: eb 39 jmp 8048f32 8048ef9: b8 00 00 00 00 mov $0x0,%eax #第一个数等于4的时候跳到这里

8048efe: 66 90 xchg %ax,%ax

8048f00: eb 2b jmp 8048f2d 8048f02: b8 00 00 00 00 mov $0x0,%eax #第一个数等于4的时候跳到这里

8048f07: eb 1f jmp 8048f28 8048f09: b8 00 00 00 00 mov $0x0,%eax #第一个数等于2的时候跳到这里

8048f0e: 66 90 xchg %ax,%ax

8048f10: eb 11 jmp 8048f23 8048f12: b8 14 03 00 00 mov $0x314,%eax #第一个数为0的时候跳到这里(p/x *0x804a1a0)首先x=778,最后第二个数等于147 8048f17: eb 05 jmp 8048f1e #跳转到 8048f1e 这一行

8048f19: b8 00 00 00 00 mov $0x0,%eax #第一个数等于1的时候跳到这里

8048f1e: 2d 5a 03 00 00 sub $0x35a,%eax #x=x-858 8048f23: 05 ef 02 00 00 add $0x2ef,%eax #x=x+751 8048f28: 2d 16 02 00 00 sub $0x216,%eax #x=x-534 8048f2d: 05 16 02 00 00 add $0x216,%eax #x=x+534 8048f32: 2d 16 02 00 00 sub $0x216,%eax #x=x-534 8048f37: 05 16 02 00 00 add $0x216,%eax #x=x+534 8048f3c: 2d 16 02 00 00 sub $0x216,%eax #x=x-534

#跳转到 8048f4d 这一行

8048f43: e8 89 01 00 00 call 80490d1

8048f48: b8 00 00 00 00 mov $0x0,%eax

8048f4d: 83 7d f4 05 cmpl $0x5,-0xc(%ebp)

8048f51: 7f 05 jg 8048f58

#第一个数字需要小于等于5,否则爆炸

8048f53: 3b 45 f0 cmp -0x10(%ebp),%eax

8048f56: 74 05 je 8048f5d #0,147; 1 -641;2,217; 3,-534; 4,0; 5,-534

8048f58: e8 74 01 00 00 call 80490d1

8048f5d: c9 leave

8048f5e: 66 90 xchg %ax,%ax

8048f60: c3 ret

思路与分析:

观察到指令movl $0x804a23e,0x4(%esp),通过查看0x804a23e的内容,

即x/s 0x804a23e,显示为"%d %d",提示输入两个整型数。call 8048840

<__isoc99_sscanf@plt>,调用isoc99标准输入变量,是把输入的数字个数存

在%eax里返回。通过cmp $0x1,%eax和jg 8048ed2

道至少输入2个数,否则爆炸。通过cmpl $0x7,-0xc(%ebp)和ja 8048f43

知道第一个数字小于等于7,由cmpl $0x5,-0xc(%ebp)和jg 8048f58 知道输入的数字要小于等于5,所以输入的数字范围为

0-5。jmp *0x804a1a0(,%eax,4)为switch分支结构,%eax存着输入的数字

的值,当输入的数组是0的时候,,查看*0x804a1a0的值,得到$1 = 0x8048f12,

即跳转到0x8048f12处。当输入的数字为1-5时依次类推。得到的地址分别为:

cmp -0x10(%ebp),%eax和je 8048f5d 即为判断经过一系列运算后求的值是否与正确的值相等。通过分析汇编代码,我们可以知道当输入不同的x值,等到的y值如下:

当x=0时,y=788-858+751-534+534-534+534-534=147

当x=1时,y=-858+751-534+534-534+534-534=-641

当x=2时,y=751-534+534-534+534-534=217

当x=3时,x=-534+534-534+534-534=-534

当x=4时,x=534-534+534-534=0

当x=5时,x=-534+534-534=-534

所以可以输入六组数据:0 147;1 -641;2 217;3 -534;4 0;5 -534。随便输入一组都能通过炸弹。

结论与心得:

第三关主要用到了switch分支结构,根据输如的不同数字跳转到不同位置进行不同的运算,最后得到结果。首先分析输入数字的范围,然后通过判断跳转的位置来准确计算。

4.phase_4

phase_4汇编代码及注释如下:

08048e2e :

8048e2e: 55 push %ebp

8048e2f: 89 e5 mov %esp,%ebp

8048e31: 83 ec 28 sub $0x28,%esp #开辟栈空间 8048e34: 8d 45 f0 lea -0x10(%ebp),%eax #第二个数字

8048e37: 89 44 24 0c mov %eax,0xc(%esp)

8048e3b: 8d 45 f4 lea -0xc(%ebp),%eax #第一个数字

8048e3e: 89 44 24 08 mov %eax,0x8(%esp)

8048e42: c7 44 24 04 3e a2 04 movl $0x804a23e,0x4(%esp) #输入x/s 0x804a23e 显示为"%d %d" ,提示输入两个整型数字 8048e49: 08

8048e4a: 8b 45 08 mov 0x8(%ebp),%eax

8048e4d: 89 04 24 mov %eax,(%esp)

8048e50: e8 eb f9 ff ff call 8048840

<__isoc99_sscanf@plt> #标准输入变量,将输入的数字个数存在%eax中 8048e55: 83 f8 02 cmp $0x2,%eax

8048e58: 75 0c jne 8048e66 #要求输入2个数字,即输入的数字个数不等于2则爆炸

8048e5a: 8b 45 f4 mov -0xc(%ebp),%eax #将第一个数放到%eax中

8048e5d: 85 c0 test %eax,%eax

8048e5f: 78 05 js 8048e66 #判断第一个数,如果是负数就爆炸,所以需要%eax>=0

8048e61: 83 f8 0e cmp $0xe,%eax

8048e64: 7e 05 jle 8048e6b #比较第一个数和14(0xe)的大小,如果%eax<=14,则继续执行,否则爆炸 8048e66: e8 66 02 00 00 call 80490d1 8048e6b: c7 44 24 08 0e 00 00 movl $0xe,0x8(%esp) #将

0xe存到%esp+8

8048e72: 00

8048e73: c7 44 24 04 00 00 00 movl $0x0,0x4(%esp) #将

0x0存到%esp+4

8048e7a: 00

8048e7b: 8b 45 f4 mov -0xc(%ebp),%eax

8048e7e: 89 04 24 mov %eax,(%esp) #将第一个数存到%esp

8048e81: e8 da fc ff ff call 8048b60 #调用func4函数(递归函数)

8048e86: 83 f8 01 cmp $0x1,%eax #函数的返回值y存放在%eax寄存器中

8048e89: 75 06 jne 8048e91 #y要等于1,否则爆炸

8048e8b: 83 7d f0 01 cmpl $0x1,-0x10(%ebp)

8048e8f: 74 0c je 8048e9d #第二个数要等于1,否则爆炸

8048e91: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi 8048e98: e8 34 02 00 00 call 80490d1 8048e9d: c9 leave

8048e9e: 66 90 xchg %ax,%ax

8048ea0: c3 ret

call 8048b60 知道要调用func4函数。

func4汇编代码及注释如下:

08048b60 :

8048b60: 55 push %ebp

8048b61: 89 e5 mov %esp,%ebp

8048b63: 83 ec 18 sub $0x18,%esp #建立一个栈帧

8048b69: 89 75 fc mov %esi,-0x4(%ebp)

8048b6c: 8b 55 08 mov 0x8(%ebp),%edx

#%edx->x

8048b6f: 8b 45 0c mov 0xc(%ebp),%eax

#%eax->y=0x0=0

8048b72: 8b 5d 10 mov 0x10(%ebp),%ebx

#%ebx->z=0xe=14 func4(x,y,z)

8048b75: 89 d9 mov %ebx,%ecx #计算临时变量t的过程,#t=z

8048b77: 29 c1 sub %eax,%ecx #t=z-y

8048b79: 89 ce mov %ecx,%esi #t=z-y

8048b7b: c1 ee 1f shr $0x1f,%esi #t=(z-y)>>31,逻辑右移31位

8048b7e: 8d 0c 0e lea (%esi,%ecx,1),%ecx

#t=(z-y)>>31+(z-y)

8048b81: d1 f9 sar %ecx

#t=[(z-y)>>31+(z-y)]>>1

8048b83: 01 c1 add %eax,%ecx

#t=[(z-y)>>31+(z-y)]/2+y = (14>>31+14)/2+0=7

8048b85: 39 d1 cmp %edx,%ecx #将7和x(第一个数)比较,即7-x

8048b87: 7e 17 jle 8048ba0 #当7<=x就跳转到8048ba0 否则继续执行下一条指令

8048b89: 83 e9 01 sub $0x1,%ecx #t=t-1

if(7>x)

8048b8c: 89 4c 24 08 mov %ecx,0x8(%esp) #将

t-1移到0x8(%esp),z=t-1

8048b90: 89 44 24 04 mov %eax,0x4(%esp) #y

8048b97: e8 c4 ff ff ff call 8048b60 #递归 8048b9c: 01 c0 add %eax,%eax #y=2*y,将结果存放到%eax中

8048b9e: eb 20 jmp 8048bc0 #结束

8048ba0: b8 00 00 00 00 mov $0x0,%eax #if(x>=7)时就跳转到这里,此时令y=0

8048ba5: 39 d1 cmp %edx,%ecx

8048ba7: 7d 17 jge 8048bc0 #如果t>=x(在这种情况下只能x==t),则跳转到8048bc0,否则继续执行 8048ba9: 89 5c 24 08 mov %ebx,0x8(%esp) #z 8048bad: 83 c1 01 add $0x1,%ecx #y=t+1

8048bb0: 89 4c 24 04 mov %ecx,0x4(%esp) y=t+1 8048bb4: 89 14 24 mov %edx,(%esp) #x

8048bb7: e8 a4 ff ff ff call 8048b60 #递归 8048bbc: 8d 44 00 01 lea 0x1(%eax,%eax,1),%eax #y=z*y+1,将结果存到%eax中

8048bc0: 8b 5d f8 mov -0x8(%ebp),%ebx

#if(t==x)跳转到这里

8048bc3: 8b 75 fc mov -0x4(%ebp),%esi

8048bc6: 89 ec mov %ebp,%esp

8048bc8: 5d pop %ebp

8048bc9: c3 ret

思路与分析:

首先分析phase_4汇编代码。movl $0x804a23e,0x4(%esp)输入x/s

0x804a23e 显示为"%d %d" ,提示输入两个整型数字。call 8048840 <__isoc99_sscanf@plt>,cmp $0x2,%eax,jne 8048e66

任然要求输入2个数字。通过mov -0xc(%ebp),%eax,test %eax,%eax,js 8048e66 知道第一个数为非负数。由cmp $0xe,%eax 和jle 8048e6b 又可以知道第一个数字要小于等于14。之后分析func4函数,分别用%esp,0x4(%esp),%0x8(%esp)传递三个参数,设为x,y,z。参数y存储在寄存器%eax中并作为最终的返回值,最终结果为1,也就是n的值;参数x和z存储于寄存器%edx和%ebx中,并通堆栈指针来保存或改变(配合其他指令)。在func4中进一步缩小了第一个数字的范围。现在需要第一个数字的范围为7-14。通过分析func4汇编代码,可以得到如下的c代码:# #include

# int x,y,z,ret;

# int func4(){

# int t=((z-y)>>31+(z-y))/2+y;

# if(t>x){

# z=t-1;

# func4();

# y=z*y;

# }

# else{

# y=0;

# if(t==x)

# return y;

# y=t+1;

# func4();

# y=2*y+1;

# }

# }

#

# int main(){

# for(x=0;x<=0xe;x++){

# y=0;

# z=0xe;

# ret=func4();

# if(ret==1)

# printf("m=%d,n=%d\n",x,ret)

# }

# return 0;

# }

第二个数必须为1。经过分析可以有三组数。分别是:8 1;9 1;11 1。任意输入一组数就能通过关卡。

结论与心得:

这一关中在函数里调用了另外一个函数func4,func4函数中运用到了线性递归。通过分析汇编代码可以写出相应的c代码,通过分析第一个数范围在7-14,第二个数必须为1,结合c代码可以得出结果。

5.phase_5

phase_5汇编代码及注释如下:

08048db8 :

8048db8: 55 push %ebp

8048db9: 89 e5 mov %esp,%ebp

8048dbb: 56 push %esi

8048dbc: 53 push %ebx

8048dbd: 83 ec 20 sub $0x20,%esp #开辟栈空间 8048dc0: 8d 45 f0 lea -0x10(%ebp),%eax

8048dc3: 89 44 24 0c mov %eax,0xc(%esp) #第二个数

8048dc7: 8d 45 f4 lea -0xc(%ebp),%eax

8048dca: 89 44 24 08 mov %eax,0x8(%esp) #第一个数

8048dce: c7 44 24 04 3e a2 04 movl $0x804a23e,0x4(%esp) #输入x/s 0x804a23e 显示为"%d %d" ,提示输入两个整型数字 8048dd5: 08

8048dd6: 8b 45 08 mov 0x8(%ebp),%eax

8048dd9: 89 04 24 mov %eax,(%esp)

8048ddc: e8 5f fa ff ff call 8048840

<__isoc99_sscanf@plt> #将输入的数字个数返回到%eax中

8048de1: 83 f8 01 cmp $0x1,%eax

8048de4: 7f 05 jg 8048deb #若输入的数字个数大于1则跳转,否则爆炸,所以至少输入两个数字

8048de6: e8 e6 02 00 00 call 80490d1 8048deb: 8b 45 f4 mov -0xc(%ebp),%eax

8048dee: 83 e0 0f and $0xf,%eax #第一个数“与” 0xf,这个操作可以只保留第一个数的二进制后四位(0“与”任何数都为0)

8048df1: 89 45 f4 mov %eax,-0xc(%ebp) #经过上面的操作后再把第一个数放回原来的位置(只保留二进制表示的后四位) 8048df4: 83 f8 0f cmp $0xf,%eax

8048df7: 74 29 je 8048e22 #比较,如果第一个数和0xf(1111)相等则爆炸,说明第一个数的二进制后四位不能为“1111”,否则爆炸

8048df9: b9 00 00 00 00 mov $0x0,%ecx #%ecx=0 ;用来累加%eax,初始化为0

8048dfe: ba 00 00 00 00 mov $0x0,%edx #%edx=0 ;

循环次数,初始化为0

8048e03: bb c0 a1 04 08 mov $0x804a1c0,%ebx # p *0x804a1c0=10 ,这个地址为数组的首地址,求的值为第一个元素的值,求数组元素:p *0x804a1c0@16={10, 2, 14, 7, 8, 12, 15, 11, 0, 4, 1, 13, 3, 9, 6, 5}

8048e08: 83 c2 01 add $0x1,%edx #%edx=1,循环从这里开始

8048e0b: 8b 04 83 mov (%ebx,%eax,4),%eax

#%eax=(%ebx+4*%eax)=(0x804a1c0+4*%eax) ; %eax用来保存求出的数组中的某个值

8048e0e: 01 c1 add %eax,%ecx

#%ecx=%ecx+%eax

8048e10: 83 f8 0f cmp $0xf,%eax

8048e13: 75 f3 jne 8048e08 #如果此时%eax(此时的数组元素值)不等于15,则继续循环,否则执行下一语句

8048e15: 89 45 f4 mov %eax,-0xc(%ebp) #将现在的元素值放回第一个数的位置???

8048e18: 83 fa 0f cmp $0xf,%edx

8048e1b: 75 05 jne 8048e22 #如果%edx不等于15,则爆炸,所以,要循环15次

8048e1d: 39 4d f0 cmp %ecx,-0x10(%ebp) #

累加的结果

8048e20: 74 05 je 8048e27 #判断第二个数的值

8048e22: e8 aa 02 00 00 call 80490d1 8048e27: 83 c4 20 add $0x20,%esp #释放栈的操作 8048e2a: 5b pop %ebx

8048e2b: 5e pop %esi

8048e2c: 5d pop %ebp

8048e2d: c3 ret

思路与分析:

movl $0x804a23e,0x4(%esp)仍然提示输入两个整型数字,and

$0xf,%eax第一个数“与” 0xf,这个操作可以只保留第一个数的二进制后四位(0“与”任何数都为0)。mov %eax,-0xc(%ebp)经过上面的操作后再把第一个数放回原来的位置(只保留二进制表示的后四位)。cmp $0xf,%eax 和je 8048e22 比较,如果第一个数和0xf(1111)相等则爆炸,说明第一个数的二进制后四位不能为“1111”,否则爆炸。mov

$0x804a1c0,%ebx这个地址为数组的首地址,求的值为第一个元素的值。求数组元素:p *0x804a1c0@16={10, 2, 14, 7, 8, 12, 15, 11, 0, 4, 1, 13, 3, 9, 6, 5}

通过分析汇编代码可以推出如下c代码:

# p *0x804a1c0@16={10, 2, 14, 7, 8, 12, 15, 11, 0, 4, 1, 13, 3, 9, 6, 5}

# sum=0;

# for(i=1;n!=15;i++){

# n=a[n];

# sum+=n;

# }

# if(i==15)

# return sum;

n最后需要等于15,采用逆推的方法可以知道从开始到最后n的值分别为(因为开始循环之前取了一个n,所以总的有16个n):

5,12,3,7,11,13,9,4,8,0,10,1,2,14,6,15、

也就是说需要一开始传进去的值为5,循环15次后得到的元素值才为15。只要用户输入的第一位数的二进制的后四位是0101(5),则可以通过,所以第一个

医疗报告生物医学仪器实验报告

数据采集综合性训练 目录 一、科研训练目的以及内容3 二、科研训练设备3 三、采集系统构成3 四、驱动程序说明5 五、程序框架6 六、代码关键算法说明7 七、实验总结及讨论8 八、专题资料总结11 参考文献17 指导教师:邹远文 材料科学与工程学院 生物医学工程专业 0843015044 王夕雨 一、科研训练目的及内容

1、科研训练目的 数据采集是仪器设计中的关键环节,涉及计算机语言、微机原理、操作系统、数字电路、嵌入式系统、数字信号处理等多门课程的内容;同时要求具备计算机编程、设备器件组装等实际操作能力。通过此项训练,能将多门课程的内容融合,加深学生对课程内容的理解,提升学生实际运用课程知识的能力; 同时为学生进入科研训练和毕业论文阶段,打下工程运用的基础。 2、科研训练内容 1、USB和BIOPAC的AD/DA、数字IO的编程(VC++)和使用 2、练习采集数据存储与管理 3、练习示波器和信号发生器 二、科研训练设备 1、计算机 2、USB数据采集卡和BIOPAC数据采集器 3、示波器和信号发生器 三、采集系统的构成 本次数据采集系统主要是USB数据采集与电脑和示波器数据采集,信号发生器用FG-275/FG-273A。 图1数据采集卡 图2信号发生器 图3示波器 USB数据采集系统的构成如下图1所示。[1]

图4、USB数据采集系统 示波器数据采集系统的构成如图5。泰克TDS3000C系列示波器拥有高达500MHz的带宽,在紧凑的电池供电的设计中提供了经济的性能,这一流行的产品系列现在配有USB主机端口和PC连接软件,同时提供了熟悉的操作和简单的导航功能,您可以用更少的时间学习和重新学习怎样使用示波器,用更多的时间完成手头的任务。[2] 图5、示波器数据采集系统 FG-275/FG-273A函数信号发生器。[3] FG-273A/-275函数信号发生器规格 方波特性: 对称性:±3%或更小(100Hz时) 上升及下降时间:最大100ns(最大输出) 正弦波特性: 失真:1%或更小(100KHz时) 三角波特性: 线性:1%或更小(100KHz时) 电源要求:100/120/220/240VAC,50/60Hz,约20VA 尺寸:240(宽)×64(高)×190(长)mm 重量:1.8kg 特点: ·扫描/函数/脉冲信号产生

simtrade实训总结

上海杉达学院 商务流程综合实训总结 单位名称:微科电子有限公司(加盖公章)姓名:陈恩娜 学院:胜祥商学院 专业:国际经济与贸易 班级: f130219 时间: 2016.11.14

工作总结历时10天的跨专业实训圆满落幕,作为国贸专业的我们参加了企业经营的模拟实训,通过这几天的实训,我也算是了解到了企业经营的基本流程和一般模式。前三天,我们基本在忙碌企业创立的事情。我们首先要做的是公司注册登记。公司注册流程共包括名称预先登记、设立登记申请书、准备申请材料、银行开户入资、验资、前置审批、报送申请材料、工商审批发照、刻制公章、开设银行帐户、办理各项登记、股东入资证明、企业机构代码、企业税务登记、企业劳动备案、社会保险登记、企业统计备案、特殊行业备案18类。我们实训时规定了公司类型为制造型企业,开始注册资金为500万元。在实训中,我们注册的公司为微科电子有限公司,地址位于上海市陆家嘴,股东为3人。申请表提交上去后,我们得到了审批,就开始了下面的企业经营规划。我们企业经营过程共分为九个相互联系又相互独立的部门。这十个部门分别为总经办、人力资源部门、物流部门、质检部门、行政部门、营销部门、生产部门、财务部门、采购部门。总经办为CEO代理,也就是我们常说的总经理,其他分别为营销总监、生产总监、物流总监、采购总监、财务总监、采购经理、人事经理、行政主管、质检经理。这九个职位分别为十一个同学完成,我作为采购部经理也参与其中。采购部的岗位职责可归纳为:依照公司生产需要及物资采购计划,全面负责公司的物料采购和供应工作;对初次进行合作的供应商进行调查了解,根据实际掌握的资料与信息做出相应的评价判定。对于符合公司要求的,方可与之开展业务往来与合作;采购工作的开展应当做到精打细算,尽力降低公司的采购成本,避免出现浪费公司资金的情况;负责对所有与公司有业务往来的供应商或供货企业进行定期的资质评价并给出明确的评价等级。针对不同的评价等级给出相应的处理意见;完成公司领导布置的其它各项工作。各岗位要各司其职,填写经营流程表,有序的完成一年的经营。

控制系统仿真与设计实验报告

控制系统仿真与设计实验报告 姓名: 班级: 学号: 指导老师:刘峰 7.2.2控制系统的阶跃响应 一、实验目的 1.观察学习控制系统的单位阶跃响应; 2.记录单位阶跃响应曲线; 3.掌握时间相应的一般方法; 二、实验内容 1.二阶系统G(s)=10/(s2+2s+10)

键入程序,观察并记录阶跃响应曲线;录系统的闭环根、阻尼比、无阻尼振荡频率;记录实际测去的峰值大小、峰值时间、过渡时间,并与理论值比较。 (1)实验程序如下: num=[10]; den=[1 2 10]; step(num,den); 响应曲线如下图所示: (2)再键入: damp(den); step(num,den); [y x t]=step(num,den); [y,t’] 可得实验结果如下:

记录实际测取的峰值大小、峰值时间、过渡时间,并与理论计算值值比较 实际值理论值 峰值 1.3473 1.2975

峰值时间 1.0928 1.0649 过渡时间+%5 2.4836 2.6352 +%2 3.4771 3.5136 2. 二阶系统G(s)=10/(s2+2s+10) 试验程序如下: num0=[10]; den0=[1 2 10]; step(num0,den0); hold on; num1=[10]; den1=[1 6.32 10]; step(num1,den1); hold on; num2=[10]; den2=[1 12.64 10]; step(num2,den2); 响应曲线:

(2)修改参数,分别实现w n1= (1/2)w n0和w n1= 2w n0响应曲线试验程序: num0=[10]; den0=[1 2 10]; step(num0,den0); hold on; num1=[2.5]; den1=[1 1 2.5]; step(num1,den1); hold on; num2=[40]; den2=[1 4 40]; step(num2,den2); 响应曲线如下图所示:

医疗仪器设计实验报告

电子科技大学生命科学与技术学院标准实验报告 (实验)课程名称医学仪器设计 2014-2015-第1学期 电子科技大学教务处制表

电子科技大学 实验报告 学生姓名:周志洋、易杰瑞、常明、张明 学号:2011092010017、201109101019、2011091010011、2011091030016 指导教师:廖小丽 实验地点:沙河校区 实验时间:2014年12月30日 一、实验室名称:主楼西420 二、实验名称:液晶显示实验 三、实验学时:2学时 1.1 液晶显示器概述 1. 概述 日常生活中,人们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通用器件,如计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。 2.主要优势 1、显示质量高。 由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT),那样需要不断刷新亮点。 2、数字式接口。 3、体质小、重量轻。 4、功耗低。 5、辐射小。(可通过屏蔽电路解决) 1.2 LCD液晶显示器原理 1、液晶显示原理 液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,控制特定的显示区域就可以得到特定的图形。 2、液晶显示器的分类 按颜色区分:黑白显示、彩色显示。

按显示方式区分:段式、字符式、点阵式等。 按驱动方式区分:静态(Static)驱动、单纯矩阵(simple Matrix)驱动、主动矩阵(Active Matrix)驱动。 3、液晶显示器各种图形的显示原理 1)线段显示 点阵图形式液晶由M*N个显示单元组成,假设LCD显示 屏有64行,每行有128列,每8列对应1Byte(字节)的8位, 即每行有16Byte,共16*8=128个点组成,屏上64*16个显示单 元与显示RAM区1024Byte相对应,每一字节的内容与显示 屏上的亮暗相对应。 2)字符显示 每个字符都是由6*8或8*8点阵组成,既要找到和显示屏 相对应的显示RAM区的8Byte,还要使每字节的不同位置为 1,其他的为0,为1点亮,为0不亮。由此组成某个字符。 内部带字符发生器的控制器的液晶显示器,让控制器工作在文本方式,找出显示RAM对应的地址,设立光标,送上某字符对应的代码即可。 3)汉字的显示 一般采用图形的方式,首先提取汉字的点阵码,每个汉字占32Byte,找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一个字节,光标位置加1,送第二个字节······直到32Byte显示完,就可以在LCD上得到一个完整的汉字。 1.3 点阵式液晶显示器 点阵式液晶显示器简介 相对字符型液晶显示器,功能更多,步进可以显示字符数字还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动、动画、反转、闪烁等功能,用途十分广泛。 按显示点阵数分类:128W*64H、132W*32H、192W*64H、320W*240H等 12864LCD 128×64点阵液晶显示屏有三种控制器,分别是KS0107(KS0108)、T6963C和ST7920,三种控制器主要区别是:KS0107(KS0108)不带任何字库、T6963C带ASCII码,ST7920带国标二级字库(8千多个汉字)。 模块主要硬件构成

哈工大_控制系统实践_磁悬浮实验报告

研究生自动控制专业实验 地点:A区主楼518房间 姓名:实验日期:年月日斑号:学号:机组编号: 同组人:成绩:教师签字:磁悬浮小球系统 实验报告 主编:钱玉恒,杨亚非 哈工大航天学院控制科学实验室

磁悬浮小球控制系统实验报告 一、实验内容 1、熟悉磁悬浮球控制系统的结构和原理; 2、了解磁悬浮物理模型建模与控制器设计; 3、掌握根轨迹控制实验设计与仿真; 4、掌握频率响应控制实验与仿真; 5、掌握PID控制器设计实验与仿真; 6、实验PID控制器的实物系统调试; 二、实验设备 1、磁悬浮球控制系统一套 磁悬浮球控制系统包括磁悬浮小球控制器、磁悬浮小球实验装置等组成。在控制器的前部设有操作面板,操作面板上有起动/停止开关,控制器的后部有电源开关。 磁悬浮球控制系统计算机部分 磁悬浮球控制系统计算机部分主要有计算机、1711控制卡等; 三、实验步骤 1、系统实验的线路连接 磁悬浮小球控制器与计算机、磁悬浮小球实验装置全部采用标准线连接,电源部分有标准电源线,考虑实验设备的使用便利,在试验前,实验装置的线路已经连接完毕。 2、启动实验装置 通电之前,请详细检察电源等连线是否正确,确认无误后,可接通控制器电源,随后起动计算机和控制器,在编程和仿真情况下,不要启动控制器。 系统实验的参数调试

根据仿真的数据及控制规则进行参数调试(根轨迹、频率、PID 等),直到获得较理想参数为止。 四、实验要求 1、学生上机前要求 学生在实际上机调试之前,必须用自己的计算机,对系统的仿真全部做完,并且经过老师的检查许可后,才能申请上机调试。 学生必须交实验报告后才能上机调试。 2、学生上机要求 上机的同学要按照要求进行实验,不得有违反操作规程的现象,严格遵守实验室的有关规定。 五、系统建模思考题 1、系统模型线性化处理是否合理,写出推理过程? 合理,推理过程: 由级数理论,将非线性函数展开为泰勒级数。由此证明,在平衡点)x ,(i 00对 系统进行线性化处理是可行的。 对式2x i K x i F )(),(=作泰勒级数展开,省略高阶项可得: )x -)(x x ,(i F )i -)(i x ,(i F )x ,F(i x)F(i,000x 000i 00++= )x -(x K )i -(i K )x ,F(i x)F(i,0x 0i 00++= 平衡点小球电磁力和重力平衡,有 (,)+=F i x mg 0 |,δδ===00 i 00 i i x x F(i,x) F(i ,x )i ;|,δδ===00x 00i i x x F(i,x)F (i ,x )x 对2 i F(i,x )K()x =求偏导数得:

无源医疗器械检测实验报告1-9

日期指导教师胡秀枋成绩 同组同学姓名 《无源医疗器械检测》实验报告一 物理部分 班级 姓名 学号 实验一、一次性注射针刚度检测 实验设备名称与型号 一、实验目的: 二、实验材料方法 供试品名称型号: 操作步骤:

测试人员: 记录人员: 四、操作问答题: 1.一次性使用输液、输血、注射器具的检测标准是什么? 2.说出三个注射针针管测试产品中产品标记的意义。 3.本次注射针针管的刚度检测仪器名称和测试方法。 4.说出注射针针管的刚度检测各项实验数据意义和检测结果判定方法。 实验二、一次性注射器滑动性能检测 实验设备名称与型号 一、实验目的: 二、实验材料方法 供试品名称型号: 操作步骤:

测试人员: 记录人员: 四、操作问答题: 1.本次一次性注射针滑动性能检测仪器名称和测试方法。 2.说出一次性注射针滑动性能检测各项实验数据意义和检测结果判定和计 算方法。 3.如何进行一次性注射针滑动性能检测中行程的设定? 实验三、一次性注射器器身密合性(正压)检测 实验设备名称与型号 一、实验目的: 二、实验材料方法 供试品名称型号: 操作步骤:

测试人员: 记录人员: 四、操作问答题: 1.本次一次性注射器器身密合性(正压)检测仪器名称和测试方法。 2.说出一次性注射器器身密合性(正压)检测各项实验数据意义和检测结果 判定方法。 实验四、基于电阻法原理微粒检测 实验设备名称与型号 一、实验目的: 二、实验材料方法 供试品名称型号:

操作步骤: 三、实验数据记录:输液器型号 测试人员: 记录人员: 四、操作问答题: 1.本次基于电阻法原理微粒检测仪器名称和测试方法。 2.说出基于电阻法原理微粒检测各项实验数据意义和检测结果判定方法。

实验六-实验报告

《数据库原理》实验报告 实验六、视图和图表的定义及使用实验 姓名胡艺敏学号38 系别 女 数计学院 班 级 11计科师 范 主讲教师江凤莲指导教师江凤莲实验日期2013 4-27 专 业 计算机 课程名称数据库原理同组实验者 一、实验目的 使学生掌握利用SQL Server企业管理器的视图创建向导和图表创建向导建立视图表和关系图(图表),加深对视图和图表概念的理解,了解视图和图表的作用。 二、实验要求 1)调出创建视图向导,在图书-读者库中按下列T-SQL描述创建读者视图。 CREATE VIEW 读者_VIEW AS SELECT 图书.*,借阅.* FROM 图书,借阅,读者 WHERE 图书.书号=借阅.书号AND借阅.读者编号=读者.编号; 2)调出向导,按T-SQL描述创建借阅_计算机图书视图。 CREATE VIEW 借阅_计算机图书 AS SELECT 图书.*,借阅.* FROM 图书,借阅 WHERE 图书.书号=借阅.书号AND图书.类别=‘计算机’ 3)调出创建图表向导,完成在图书_读者数据库中建立图书_借阅图表的操作。要求该图表包括图书和借阅两个表,通过“图书.书号=借阅.书号”外码与被参照表之间的关联。 4)查看以上视图和图表的属性,并修改到正确为止。 三、实验类型:验证、设计、综合 四、实验环境

Microsoft SQL Server 2000 五、实验内容: (1)实验代码(可加附页): (1)基本操作实验 1)查看图书-读者库结构信息,根据给定的T-SQL语句确定视图结构信息,如表10所示。 表10 视图结构信息 序号视图名 数据库 名 相关表名列定义元组定义 1 读者_VIEW 图书-读 者 图书,借阅, 读者 图书.*, 借阅.* 图书.书号=借阅.书号 AND 借阅.读者编号=读者. 编号 2 借阅_计算 机图书 图书-读 者 图书,借阅 图书.*, 借阅.* 图书.书号=借阅.书号 AND图书.类别='计算机' 2)查看图书-读者库结构信息,根据题目要求确定图表结构信息,如表11所示。 表11 图表结构信息 图表名数据库名主表名参照表 名 关联定义 读者_VIEW 图书-读 者 借阅图书图书.书号=借阅.书号 (2)实验结果(可加附页):

simtrade外贸实务实训报告

宁波职业技术学院 外贸实务 II - 提高 实训报告 指导老师:江彬 班级:国贸3141 学生姓名:肖思洁 学号: 1426263133 日期: 2016-04-25

课程名称:外贸实务II-提高

1 实训目的及要求 1.1 1.2 2 实训内容及步骤(包含简要的实训步骤流程) 2.1 本人所扮演的角色 2.2 贸易资料及实训步骤 2.2.1 2.2.2 2.2.3 2.2.4 3 实训结果(包括实训项目的完成情况,代表性邮件,单据,程序或图表、结论陈述、核算表数据记录及分析等) 3.1 3.1.1 3.1.2 3.1.3 3.2 4 实训中遇到的问题及其解决方法 5 实训总结(包括心得体会、对SimTrade系统的评价、对自己实训效果的评价如实训收获不足及实训改进意见等) 6 实训评价

外贸实训报告 外贸实务实训体会总结,这次是项目过程的完成让我感觉很深刻。短短的32学时已经结束,静下心来回想这次操作模拟学习真是感受颇深。我们知道动手操作是大学教育中一个极为重要的实践性环节,通过实习,可以使我们在实践中接触与本专业相关的一些实际工作,培养和锻炼我们综合运用所学的基础理论、基本技能和专业知识,去独立分析和解决实际问题的能力,把理论和实践结合起来,提高我们的实际动手能力,为将来我们毕业后走上工作岗位打下一定的基础。通过这段时间的学习,从无知到认知,到深入了解,渐渐地我喜欢上这个专业,让我深刻的体会到学习的过程是最美的,在整个实习过程中,我每天都有很多的新的体会,新的想法。 回顾我的实习生活,感触是很深的,收获也是丰硕的。可以模拟出口商与非洲、中东等地方的外国商人做生意,他们在我公司下订单,我们再把订单下到厂里,从中赚取差额,或者作为进口商与出口商讨价还价,去除运费保险费等来赚取利益。当然对工厂的基本流程也有一定的了解。这次的实习经历我对外贸这个专业有了更加理性的认识和更深刻的体会。在这次是学习中,我学到了很多过去两年没有体会到的东西,这不仅仅只是上课模拟,也是一次对真实工作流程经历。 对实践的看法: 在操作过程中,根据本门课程的内容、特点,通过走出去、请进来等方式,精心组织方案。通过听、看、做使一些看起来繁杂的专业知识很快被我们理解和掌握。只有将理论联系实际,教学与实际相结合,才是培养我们能力的一种有效形式。 出口商+进口商+工厂,一共写了78封邮件。一共发布了8封广告和信息。 查了B2B里的多数产品信息。 银行汇率:欧元大多汇率为8.6402,美元大多为6.1463等。保险费:一切险(ALL RISKS)为0.8%,战争险(W AR RISKS)为0.08% 保险费计算方式为 (1)按CIF进口时:保险金额=CIF货价×1.1 (2)按CFR进口时:保险金额=CFR货价×1.1 / (1 - 1.1 ×r),其中r为保险费率,请在"淘金网"的"保险费"页面查找,将所投险别的保险费率相加即可。 (3)按FOB进口时:保险金额=(FOB货价+ 海运费)×1.1 / (1 - 1.1 ×r),其中FOB 货价就是合同金额,海运费请在装船通知中查找,由出口商根据配舱通知填写,如果出口商填写错误,请其查看配舱通知。 实训的基本流程: 第一周完成了进口商,出口商,工厂,进口、出口地银行的基本资料。然后熟悉了下系统的基本轮廓,如B2B里面可以查询写什么,市场,海关等在哪个位置。根据老师的知道,试着去发广告与写邮件。 第二周确定角色,开始寻找有利信息,搜索信息,同业务伙伴建合作关系。 我先进行成本、费用、利润等的核算,若有盈利则进一步磋商合作,若亏损就跟对方进行讨价还价。过程为询盘——发盘——还盘——接受。 第三周之后进入交易准备阶段——交易磋商阶段——签订合同(T/T+FOB)与接收信用证(L/C+CIF)——履行合同阶段。 签订合同之后进行合同履行阶段。 首先作为出口商,与进口商进行磋商商定后确定的价格,之后跟工厂进行合作并进一步签订SALES CONFIRMATON。等工厂交货物发过来后,与工厂的业务就能完成。

过程控制系统实验报告

实验一过程控制系统的组成认识实验 过程控制及检测装置硬件结构组成认识,控制方案的组成及控制系统连接 一、过程控制实验装置简介 过程控制是指自动控制系统中被控量为温度、压力、流量、液位等变量在工业生产过程中的自动化控制。本系统设计本着培养工程化、参数化、现代化、开放性、综合性人才为出发点。实验对象采用当今工业现场常用的对象,如水箱、锅炉等。仪表采用具有人工智能算法及通讯接口的智能调节仪,上位机监控软件采用MCGS工控组态软件。对象系统还留有扩展连接口,扩展信号接口便于控制系统二次开发,如PLC控制、DCS控制开发等。学生通过对该系统的了解和使用,进入企业后能很快地适应环境并进入角色。同时该系统也为教师和研究生提供一个高水平的学习和研究开发的平台。 二、过程控制实验装置组成 本实验装置由过程控制实验对象、智能仪表控制台及上位机PC三部分组成。 1、被控对象 由上、下二个有机玻璃水箱和不锈钢储水箱串接,4.5千瓦电加热锅炉(由不锈钢锅炉内胆加温筒和封闭外循环不锈钢锅炉夹套构成),压力容器组成。 水箱:包括上、下水箱和储水箱。上、下水箱采用透明长方体有机玻璃,坚实耐用,透明度高,有利于学生直接观察液位的变化和记录结果。水箱结构新颖,内有三个槽,分别是缓冲槽、工作槽、出水槽,还设有溢流口。二个水箱可以组成一阶、二阶单回路液位控制实验和双闭环液位定值控制等实验。 模拟锅炉:锅炉采用不锈钢精致而成,由两层组成:加热层(内胆)和冷却层(夹套)。做温度定值实验时,可用冷却循环水帮助散热。加热层和冷却层都有温度传感器检测其温度,可做温度串级控制、前馈-反馈控制、比值控制、解耦控制等实验。 压力容器:采用不锈钢做成,一大一小两个连通的容器,可以组成一阶、二阶单回路压力控制实验和双闭环串级定值控制等实验。 管道:整个系统管道采用不锈钢管连接而成,彻底避免了管道生锈的可能性。为了提高实验装置的使用年限,储水箱换水可用箱底的出水阀进行。 2、检测装置 (液位)差压变送器:检测上、下二个水箱的液位。其型号:FB0803BAEIR,测量范围:0~1.6KPa,精度:0.5。输出信号:4~20mA DC。 涡轮流量传感器:测量电动调节阀支路的水流量。其型号:LWGY-6A,公称压力:6.3MPa,精度:1.0%,输出信号:4~20mA DC 温度传感器:本装置采用了两个铜电阻温度传感器,分别测量锅炉内胆、锅炉夹套的温度。经过温度传感器,可将温度信号转换为4~20mA DC电流信号。 (气体)扩散硅压力变送器:用来检测压力容器内气体的压力大小。其型号:DBYG-4000A/ST2X1,测量范围:0.6~3.5Mpa连续可调,精度:0.2,输出信号为4~20mA DC。 3、执行机构 电气转换器:型号为QZD-1000,输入信号为4~20mA DC,输出信号:20~100Ka气压信号,输出用来驱动气动调节阀。 气动薄膜小流量调节阀:用来控制压力回路流量的调节。型号为ZMAP-100,输入信号为4~20mA DC或0~5V DC,反馈信号为4~20mA DC。气源信号 压力:20~100Kpa,流通能力:0.0032。阀门控制精度:0.1%~0.3%,环境温度:-4~+200℃。 SCR移相调压模块:采用可控硅移相触发装置,输入控制信号0~5V DC或4~20mA DC 或10K电位器,输出电压变化范围:0~220V AC,用来控制电加热管加热。 水泵:型号为UPA90,流量为30升/分,扬程为8米,功率为180W。

药物分析实验报告

实验四苯甲酸钠的含量测定 一、目的 掌握双相滴定法测定苯甲酸钠含量的原理和操作 二、操作 取本品1.5g,精密称定,置分液漏斗中,加水约25mL,乙醚50mL与甲基橙指示液2滴,用盐酸滴定液(0.5mol/L)滴定,随滴随振摇,至水层显持续橙红色,分取水层,置具塞锥形瓶中,乙醚层用水5mL洗涤,洗涤液并入锥形瓶中,加乙醚20mL,继续用盐酸滴定液(0.5mol/L)滴定,随滴随振摇,至水层显持续橙红色,即得,每1mL的盐酸滴定液(0.5mol/L)相当于72.06mg的C7H5O2Na。 本品按干燥品计算,含C7H5O2Na不得少于99.0% 三、说明 1.苯甲酸钠为有机酸的碱金属盐,显碱性,可用盐酸标准液滴定。 COONa +HCl COOH +NaCl 在水溶液中滴定时,由于碱性较弱(Pk b=9.80)突跃不明显,故加入与水不相溶混的溶剂乙醚提除反应生成物苯甲酸,使反应定量完成,同时也避免了苯甲酸在瓶中析出影响终点的观察。 2.滴定时应充分振摇,使生成的苯甲酸转入乙醚层。 3.在振摇和分取水层时,应避免样品的损失,滴定前,应用乙醚检查分液漏斗是否严密。 四、思考题 1.乙醚为什么要分两次加入?第一次滴定至水层显持续橙红色时,是否已达终点?为什么? 2.分取水层后乙醚层用5mL水洗涤的目的是什么? 实验五阿司匹林片的分析 一、目的 1.掌握片剂分析的特点及赋形剂的干扰与排除方法。 2.掌握阿司匹林片鉴别、检查、含量测定的原理及方法。 二、操作 [鉴别] 1.取本品的细粉适量(约相当于阿司匹林0.1g),加水10mL煮沸,放冷,加三氯化铁试液1滴,即显紫堇色。 2.取本品的细粉(约相当于阿司匹林0.5g),加碳酸钠试液10mL,振摇后,放置5分钟,滤过,滤液煮沸2分钟,放冷,加过量的稀硫酸,即析出白色沉淀,并发生醋酸的臭气。 [检查]

Simtrade实验报告

国贸专业生产实习报告 随着国际贸易的日益完善,以及中国在国际贸易的地位的不断上升,我们作为未来社会的国贸人员,为了加强社会竞争力,应培养较强的国贸工作的操作能力。于是,在结束了大三的课程后,学校给了我们一个很好的实习锻炼机会,让我们模拟国际贸易实务操作,从而从中掌握国际贸易流程。 一、实习目的 ①熟悉外贸实务的具体操作流程; ②了解、巩固与深化已经学过的理论和方法; ③增强对外贸实务的感性认识; ④提高发现问题、分析问题以及解决问题的能力。 二、实习方法: 通过进入SimTrade模拟平台,进行上机模拟操作 Simtrade外贸实习平台是一个十分成功的国际贸易模拟软件,它在很大程度上解决了学生实习难的问题。学生在网上进行国际货物买卖实务的具体操作,能很快掌握进出口的成本核算、询盘、发盘与还盘等各种基本技巧;熟悉国际贸易的物流、资金流与业务流的运作方式;切身体会到国际贸易中不同当事人面临的具体工作与他们之间的互动关系;学会外贸公司利用各种方式控制成本以达到利润最大化的思路;认识供求平衡、竞争等宏观经济现象,并且能够合理地加以利用。老师通过在网站发布新闻等行为对国际贸易环境实施宏观调控,使学生在实习中充分发挥主观能动性,真正理解并吸收课堂中所学到的知识,为将来走上工作岗位打下良好基础。 三、实习遇到的问题 1、预算错误 这是开始接触Simtrade时所最容易忽略的问题。虽然老师曾多次提醒,做贸易前一定要计算好了一切费用,选好贸易术语,最后再签定合同。但我们经常做出口商的在还没有调查进口商所在地市场的情况下就先去工厂进货了。如果工厂角色也没有做好预算,草草就签订了合同,那么可能出口商和工厂都赚不到钱。在最后交易完成后,我们经常大叫“啊,这个运费怎么比我的货物数量还多啊?”“这个保险费怎么这么贵,我要赔钱了!”

自动控制系统实验报告

自动控制系统实验报告 学号: 班级: 姓名: 老师:

一.运动控制系统实验 实验一.硬件电路的熟悉和控制原理复习巩固 实验目的:综合了解运动控制实验仪器机械结构、各部分硬件电路以及控制原理,复习巩固以前课堂知识,为下阶段实习打好基础。 实验内容:了解运动控制实验仪的几个基本电路: 单片机控制电路(键盘显示电路最小应用系统、步进电机控制电路、光槽位置检测电路) ISA运动接口卡原理(搞清楚译码电路原理和ISA总线原理) 步进电机驱动检测电路原理(高低压恒流斩波驱动电路原理、光槽位置检测电路)两轴运动十字工作台结构 步进电机驱动技术(掌握步进电机三相六拍、三相三拍驱动方法。) 微机接口技术、单片机原理及接口技术,数控轮廓插补原理,计算机高级语言硬件编程等知识。 实验结果: 步进电机驱动技术: 控制信号接口: (1)PUL:单脉冲控制方式时为脉冲控制信号,每当脉冲由低变高是电机走一步;双 脉冲控制方式时为正转脉冲信号。 (2)DIR:单脉冲控制方式时为方向控制信号,用于改变电机转向;双脉冲控制方式 时为反转脉冲信号。

(3)OPTO :为PUL 、DIR 、ENA 的共阳极端口。 (4)ENA :使能/禁止信号,高电平使能,低电平时驱动器不能工作,电机处于自由状 态。 电流设定: (1)工作电流设定: (2)静止电流设定: 静态电流可用SW4 拨码开关设定,off 表示静态电流设为动态电流的一半,on 表示静态电流与动态电流相同。一般用途中应将SW4 设成off ,使得电机和驱动器的发热减少,可靠性提高。脉冲串停止后约0.4 秒左右电流自动减至一半左右(实际值的60%),发热量理论上减至36%。 (3)细分设定: (4)步进电机的转速与脉冲频率的关系 电机转速v = 脉冲频率P * 电机固有步进角e / (360 * 细分数m) 逐点比较法的直线插补和圆弧插补: 一.直线插补原理: 如图所示的平面斜线AB ,以斜线起点A 的坐标为x0,y0,斜线AB 的终点坐标为(xe ,ye),则此直线方程为: 00 00Y Ye X Xe Y Y X X --= -- 取判别函数F =(Y —Y0)(Xe —Xo)—(X-X0)(Ye —Y0)

生物医学工程大实验报告

心电检测实验 实验目的 1.复习放大器,滤波器等相关知识, 了解心电测量的原理,并学习用生理信号采集系统记录人体心电图。 2.要求掌握心电测量电路的硬件实现方法,锻炼电路板的焊接与调试能力. 3.学习正常心电图中各波的命名与波形,了解其生理意义。 实验器材 信号发生器,电源,示波器,电机夹,导线若干,电路板一块 实验原理 1.心脏的基本构造和心电图(ECG) 心脏处于人体的循环系统的中心,主要由心肌构成,心肌是可兴奋组织,它的收缩和舒张是人体血液循环的动力;心肌将心脏分隔成左,右心房和心室四个心腔,腔间有瓣膜控制血液在房室间的流动,通过动脉血管将氧和酶等各种营养物质供给全身组织,并将静脉回流带来的组织代谢废物运走。 心脏是自律性器官,有特殊起博心肌细胞和神经传导树支(束),包括窦房结,结间束,房室结,房室束,左右束支;在起博心肌细胞(窦房结内)的自律作用下,通过房、室、神经束的传导使心肌收缩和舒张完成心脏的博动;另外,参于循环系统调节的有:交感神经,兴奋时通过肾上腺素使心率加快,而副交感神经兴奋时使心率变慢,还

有化学性的体液因素也可影响心脏的博动。 神经细胞元的放电过程已得到实验认证,心脏特殊起博心肌细胞博动和神经传导树支(束)的传导过程都是神经细胞元放电和传导的过程,因此,可通过在人体体表层安放灵敏度很高的电极接受这些微弱的心脏电活动,称为ECG(electrocardiogram)---心电图,早在1903年就发现心电图及基本测量方法;心电图机检查人体的ECG,判断心脏活动正常与否仍是医院目前首选的检查手段。 标准ECG及参数如下: 典型心电图波形 目前ECG的测量技术已很成熟,标准ECG都打印在栅格纸上,标明X方向每格0.04秒,Y方向每格0.1mv.一般来说,P波表征心脏收缩期开始;QRS复合波是心室收缩的结果,指示心室收缩期开始;T波是心室舒张的结果,将延续到下一个P波止. ECG测量基本导联三角形(肢体):

六年级科学下册实验报告单

实验报告单

实验通知单 课题 第一单元微小世界 1.放大镜 实验名称 放大镜的构造、作用、用途 实验班级 六年级 实验类别 B 实验组数 10 实验时间 任课教师 实验 准备 分组实验器材:放大镜(最好每个学生都能有一个放大镜,如果只能提供给学生一种放大镜,尽量放大倍数大一点)科学书或报纸上的照片、计算机或电视机屏幕。柱形、球形的透明器皿、塑料薄膜、铁丝、普通玻璃片、平面镜片、水。 教师演示:不同放大倍数的放大镜、图片或课件(如放大镜镜片的结构等)。 规范操作要点 1.正确用放大镜观察物体。 2.比较用肉眼观察和用放大镜观察的不同。 备注 放大镜的作用——放大物体的像(可能学生会说“把物体放大”,提醒学生物体并未变大) 放大镜的用途——我们用放大镜观察校园里的生物、实验中在老师指导下观察花、昆虫等。它是视力不佳者的助视器,还适用于电子产品检验、线路板检验、集邮者欣赏鉴定邮票、

珠宝商鉴定珠宝、公安人员用它观察指纹毛发纤维等、农技人员用它观察花蕊进行人工授粉等、制作微型工艺品的工匠工作时使用… 实验通知单 课题 2.放大镜下的昆虫世界 实验名称 实验班级 六年级 实验类别 B 实验组数 10 实验时间 任课教师 实验 准备 分组实验器材:昆虫或昆虫器官标本、放大镜 教师演示器材:有关昆虫形态构造和生活习性的多媒体课件或图片资料 规范操作要点 提供给学生各种昆虫的标本或昆虫肢体的标本。(因这个寒假的冻灾,估计开学时不会有太多的昆虫,可以利用仪器室原有的标本和蚊蝇蟑螂等常见昆虫及其肢体为观察对象。估计肉眼观察学生的兴趣不会太浓,而且因观察对象小,肉眼的发现可能不会很多。可能的

控制系统仿真实验报告

哈尔滨理工大学实验报告 控制系统仿真 专业:自动化12-1 学号:1230130101 姓名:

一.分析系统性能 课程名称控制系统仿真实验名称分析系统性能时间8.29 地点3# 姓名蔡庆刚学号1230130101 班级自动化12-1 一.实验目的及内容: 1. 熟悉MATLAB软件的操作过程; 2. 熟悉闭环系统稳定性的判断方法; 3. 熟悉闭环系统阶跃响应性能指标的求取。 二.实验用设备仪器及材料: PC, Matlab 软件平台 三、实验步骤 1. 编写MATLAB程序代码; 2. 在MATLAT中输入程序代码,运行程序; 3.分析结果。 四.实验结果分析: 1.程序截图

得到阶跃响应曲线 得到响应指标截图如下

2.求取零极点程序截图 得到零极点分布图 3.分析系统稳定性 根据稳定的充分必要条件判别线性系统的稳定性最简单的方法是求出系统所有极点,并观察是否含有实部大于0的极点,如果有系统不稳定。有零极点分布图可知系统稳定。

二.单容过程的阶跃响应 一、实验目的 1. 熟悉MATLAB软件的操作过程 2. 了解自衡单容过程的阶跃响应过程 3. 得出自衡单容过程的单位阶跃响应曲线 二、实验内容 已知两个单容过程的模型分别为 1 () 0.5 G s s =和5 1 () 51 s G s e s - = + ,试在 Simulink中建立模型,并求单位阶跃响应曲线。 三、实验步骤 1. 在Simulink中建立模型,得出实验原理图。 2. 运行模型后,双击Scope,得到的单位阶跃响应曲线。 四、实验结果 1.建立系统Simulink仿真模型图,其仿真模型为

病理生理实验报告

实验一组织晶体渗透压改变在水肿发生中 的作用(水肿) 实验目的:通过实验了解组织晶体渗透压的改变在水肿发生中的意义,加深对水肿发生机理的理解。 实验动物:蟾蜍2只,要求体重、大小相仿。 器材与药品: 200克电子天平1台,盛水玻璃缸2个,2m1注射器连4号针头2支,脱脂棉球、纱布块适量。%氯化钠液和20%氯化钠液各10ml。 实验方法: 1. 取蟾蜍2只分别称重,注意观察背部外形。 2. 向一只蟾蜍背部淋巴囊内注入0.65%氯化钠液(即蛙生理盐水)2 m1,向另一只蟾蜍背部淋巴囊内注入20%氯化钠液2ml(蟾蜍皮下淋巴囊分布见图2-1),然后分别放入装有水的玻璃缸内。 3.1小时后由水中取出蟾蜍,擦掉体表浮水后分别称重,同时仔细观察背部外形改变。 4. 解剖蟾蜍:由椎骨孔破坏神经系统。重点观察背部淋巴囊的变化。解剖观察其它脏器和解剖结构。 实验结果:将观测到的各种实验结果记入下表内 注前体重注前背部外 形注后体重注后背部外 形 注%氯化钠正常平坦正常平坦注20%氯化正常平坦变肥

钠 结果分析:实验中这两只蟾蜍分别注射了不同浓度的氯化钠溶液,组织晶体渗透压升高,两只都有一定的吸水能力,注射低浓度氯化钠溶液的青蛙吸水较少,体重只有轻微的增长,体型无明显变化;注射高浓度氯化钠溶液的青蛙吸水较多,体重有大幅度的增长,体型出现明显变化。结果表明晶体在体内的浓度越高,吸水性越强。 心得:

实验二缺氧 实验目的:通过复制外呼吸性缺氧、血液性缺氧及组织中毒性缺氧的动物模型。 实验动物:成年小白鼠4只. 器材与药品: 1.外呼吸性缺氧:带有橡皮塞的250毫升广口瓶1只(见图3—1),搪瓷盘1只、镊子、剪子各2把,100g电子天平1台。钠石灰10g,凡士林1瓶。 2.血液性缺氧:带有管道瓶塞的250m1广口瓶和三角烧瓶各2只,酒精灯1盏,三角架3个,充满一氧化碳的皮球胆1只,弹簧夹4个,lml注射器1支。甲酸、浓硫酸各300ml,2%亚硝酸钠溶液10ml 3.组织中毒性缺氧:1 m1注射器1支。%氰化钾溶液。 实验方法: 一、外呼吸性缺氧 1.取小白鼠重只称重后放入广口瓶内,瓶内预先加入钠石灰5g。观察动物一般状况,如呼吸频率、呼吸状态,皮肤、粘膜色彩、精神状态等。 2.旋紧瓶塞,用弹簧夹夹闭通气胶管,防止漏气。记录时间,观察上述各项指标的变化,直至动物死亡。待本次实验内容全部完成之后,一起剖检动物,对比观察血液颜色的改变和其它变化(以下皆同)。 二、血液性缺氧 (一)一氧化碳中毒

simtrade实验报告

国际经济与贸易专业 外贸交易模拟实验 实验报告 学号__ _ 姓名__ _____ 班级_______ 指导老师___ _______ 实验地点

一、试验目的 在Simtrade这个虚拟贸易平台中,通过扮演不同的角色,熟练掌握各种业务技巧,了解到国际贸易的物流、资金流和业务流的运作方式,增强感性认识和社会适应能力,进一步巩固、深化已学过的理论知识,提高综合运用所学知识发现问题、解决问题的能力。 二、实习时间 本次实习时间为2011-03-01至2011-03-28,共计四周 三、试验小结 本次试验运用交易方式:①L/C+CIF②L/C+CFR③T/T+CIF④T/T+CFR⑤ D/P+FOB⑥T/T+FOB 涉及到的交易产品:①洋菇罐头( 柄及碎片)CANNED STEMS AND PIECES MUSHROOMS②甜玉米罐头CANNED SWEET CORN③荔枝罐头CANNED LITCHIS④芒果罐头CANNED MANGOES⑤名牌手提包FAMOUS-BRAND HANDBAG⑥香味蜡烛SCENTED CANDLE 四、试验遇到的问题及其解决方法 1.预算与实际支出相差较大 ?没有换算成本币 在CONTRACT111中,我的进口预算表和是实际发生额都有2+汇率的差异,原因就在于我公司注册资金为欧元,而样本中为美元,而我当初为了省时省力省脑,就全部依样画弧,没有转换成欧元导致。 ?集装箱计算的问题 在CONTRACT4442中,我出口商出口预算表海运费在计算过程中集装箱数为4,而实际确实12个集装箱,结果海运费预算和实际相差甚多,之后导致FOB 价格、利润等一系列数字有出入。 ?粗心大意

医学实验报告模板

泸州医学院 本科学生设计性实验报告 专业年级班级 组长姓名 小组成员 课程名称 时间 实验设计方案: 篇二:标准实验报告格式(医学成像技术) 电子科技大学生命科学与技术学院 标准实验报告 (实验)课程名称《医学成像技术》 电子科技大学教务处制表 电子科技大学 实验报告 学生姓名:陈睿黾学号: 2209101028 指导教师:廖小丽实验地点:人文楼 418 实验时间:2006.6.2 一、实验室名称:医疗仪器实验室 二、实验项目名称:傅立叶变换核磁共振一维、二维成像 三、实验学时:4学时 四、实验原理: 利用样品的原子核在梯度磁场及高频电磁场的激励下产生的自发辐射信号的频率和相位 因空间位置不同而不同来进行成像。 五、实验目的: 对磁共振成像整个过程进行了解,同时对每一个参数改动后对磁共振信号及图像影响的 效果有直观的认识,了解一维、二维成像原理,进一步熟悉磁共振成像原理。 六、实验内容: 采用定标样品(三注油孔)对一维成像(空间频率编码)有所认识。对梯度场各参数对 一维成像的影响进行观察。 了解瞬间梯度场,对二维成像(空间相位编码)有所认识。了解瞬间梯度场的梯度大小 和瞬间梯度保持时间对二维成像图形的影响。 七、实验器材: gy-ctnmr-10ky核磁共振成像实验仪、计算机、注油三孔实验样品 八、实验步骤: 1.按实验要求连线。 2.开机预热。 3.将注油三孔样品放入样品池中,打开磁共振成像软件,设置共振频率:按下“参数设 置”页面再按下“自动采集”出现采集的信号图及傅立叶变换 的频谱图,调节“频率设置”中间的按钮,直至出现波形符合预期目标的图形。 4.调节匀场:分别调节电源上匀场调节电位器并同时调节软件中的xy匀场至傅立叶频 谱图中峰最尖锐最高信号最长,适当调节共振频率,使波形看上去尽量平滑。 5.设置z梯度场和一维成像:调偏z匀场调节使峰变宽变低,同时出现z轴线上投影的 一维成像信号。调节z梯度和工作频率,使得信号频谱占半个屏幕同时在中间。 6.二维磁共振成像记录:按下“成像记录及操作”,然后按下“记录”等待2分钟,记

simtrade实习分析报告

班级:B110904 学号:B11090230 姓名:徐敬伟

一、实验目的 国际贸易实务实验,是国际贸易实务理论课程之后的一个实践性环节,目的 在于把课程中所涉及的理论知识,应用到具体的贸易实务往来中,应达到的目标 包括: 1、利用SimTrade 提供的各项资源,做好交易前的准备工作。 2、学会运用网络资源宣传企业及产品。 3、使用邮件系统进行业务磋商,掌握往来函电的书写技巧。 4、掌握不同贸易术语在海运、保险方面的差异。在询盘、发盘、还盘、接 受环节的磋商过程中,灵活使用贸易术语(CIF 、CFR 、FOB )与结算方式(L/C 、 T/T 、D/P 、D/A ) 5 6、掌握四种主要贸易术语(L/C 、T/T 、D/P 、D/A 7 8 9 10 体会国际贸易中不 出口商、进口商和工厂。出口商分别与 进口商、工厂发生交易,其中概要可归纳于下图中:

工厂资料: 1、推销。产品制造商和出口贸易商都需要积极开发市场,寻找贸易对象,可寄送业务推广函(Sale Letter)或在计算机网络、杂志、报刊上刊登产品广告来推销自己,同时可通过参加商展等途径寻找交易对手,增进贸易机会。 2、询盘。出口商收到工厂的业务推广函或看到广告后,根据自己的需要,对有意进一步洽商的工厂予以询盘,以期达成交易。 3、发盘。工厂按买主来函要求,计算报价回函给出口商。这期间可能需要

函电多次往返接洽,最后得到关于价格条款的一致意见。 4 (Contract或 以由工厂起草。

5、生产货物。签约后,工厂即着手生产货物。 6、交货。生产完成后,工厂依合同放货给出口商。 7、支付货款。工厂放货的同时,出口商支付货款,交易完成。 8、缴税。合同完成后,工厂还需到国税局就该笔合同的收益缴付税款,增值税率与综合费用费率可在"淘金网"的"其他费用"中查到,以合同金额乘之即得税款。 出口商(L/C方式下的履约流程) 1、推销。 2 根据自己的需要,对有意进一步洽商的出口商予以询盘 易。 3 4(Contract或Agreement)。注意起草与确认合同时

相关主题
文本预览
相关文档 最新文档