用ADD指令实现整数和浮点数的加减乘法

上传人:1888****888 文档编号:38599307 上传时间:2021-11-08 格式:DOC 页数:23 大小:141.50KB
收藏 版权申诉 举报 下载
用ADD指令实现整数和浮点数的加减乘法_第1页
第1页 / 共23页
用ADD指令实现整数和浮点数的加减乘法_第2页
第2页 / 共23页
用ADD指令实现整数和浮点数的加减乘法_第3页
第3页 / 共23页
资源描述:

《用ADD指令实现整数和浮点数的加减乘法》由会员分享,可在线阅读,更多相关《用ADD指令实现整数和浮点数的加减乘法(23页珍藏版)》请在装配图网上搜索。

1、课程项目报告一、要求:利用汇编语言完成以下功能:通过键盘输入二进制指令,对指令译码,完成相应的加、减和乘操作全过程。只能使用汇编的ADD指令,不能使用汇编已有的其他加法、加法和乘法指令。* 指令格式一为:* 操作码* 第一操作数* 第二操作数* 7 6 * 5 4 3 * 2 1 0*其中00为加法,01为减法,10为乘法* 指令格式二为:* 操作码* 第一定点数* 第二定点数* 第一浮点数* 第二浮点数* 71 70 * 69 68 67 * 66 65 64* 6332* 31.0*其中当操作码为11,第二定点数全为0,第一定点数分别为000,001,010时,分别执行第一浮点数和第二浮点

2、数的加、减和乘法操作,浮点数格式采用IEEE754标准。二、程序流程:1. 通过中断输入要译码的二进制字符流;2. 选择其前8位合成1个数(如00101001就可合并为29H),先对其进行要运算的判定。通过依次移位将最左端的值放进CF位,判断其值为0或1跳转到相应的位置进行运算;3. 此程序显然有六种运算:1) 整数加法:最简单的一种,将两个操作数通过移位和设定寄存器的初值来获得,然后只需调用加法使两个寄存器相加即可,将结果存入result内存单元中。并通过中断对结果进行输出到屏幕的显示。2) 整数减法:取数和加法一致,但由于规定只能使用加法指令,因此必须先将减数的值进行求补(取反加1),再进

3、行加法指令即可,将结果存入result内存单元中。并通过中断对结果进行输出到屏幕的显示。3) 整数乘法:利用硬件实现乘法的思想,通过判断第二个操作数的未判断的较低位决定是加被乘数还是加0的操作,然后将结果右移,直到将操作数的所有位判断完毕(最后一位不移位),将结果存入result内存单元中。并通过中断对结果进行输出到屏幕的显示。4) 浮点数加法:前面取了前8位归并后,将指针的位置保留下来,现在将其指针弹栈继续对剩下的输入的字符进行操作。首先调用子程序将剩下的输入字符流存入内存以待使用(将字符流转变成数值并组成一个完整的数字,即浮点数有三个数:1位的数符,8位的阶码,23位的数值)。此次运算严格

4、按照浮点数的运算进行,即先对阶(阶码小的向阶码大的对齐)-取数运算(由于输入的是二进制字符流,因此在运算之前需根据数符对数值进行补码操作,而且由于有23位数值,通用寄存器只有16位,需调用两个寄存器来运算,注意低位是否有向高位的进位)-规格化,最后将阶码存到float_jie内存,数值运算结果存入result单元。并通过中断对阶码和数值进行输出显示。5) 浮点数减法:与加法一样先调用中断将剩下的浮点数信息存入内存。与加法不同的是由于只能用加法指令,在操作的时候同样需先对第二个浮点数进行求补操作(取反加1),然后在进行与加法一样的操作,最后将阶码存到float_jie内存,数值运算结果存入res

5、ult单元。并通过中断对阶码和数值进行输出显示。6) 浮点数乘法:与前面两个浮点数的操作一样先将剩下的浮点数信息存入内存。我们这里操作数均取得补码,因此用booth算法做乘法运算(通过移位取最低两位进行判断,如果相同则加0,如果ynyn-1=10,则加【x】补,如果为ynyn-1=01,则加【-x】补),通过23次的判断,进行加法操作和移位,最终得到结果,将阶码存到float_jie内存,数值运算结果存入result单元。并通过中断对阶码和数值进行输出显示。三、在此给出部分运行结果:1.整数加法输入:注意:指令P下面的二进制字符流严格按照要求的格式进行输入输出:注意:由于我在存储的时候将res

6、ult内存设为了dd型,而我在存的时候存在了高位,在内存中是以大端格式存储,对于此题我们只用到了三位数的加法,显然可以看出最后结果为02(001+001),正确。2.整数减法输入:输出:这里和整数加法是一样的输出设置,因此结果为01(010-001),正确。4. 整数乘法输入:输出:输出为1(001*001),结果正确。5.浮点数加法:注意:这里输入并未输入特别规范的移码表示其阶码的格式,这样输入比较简单,而且在两个阶码均正的情况下不会涉及到大小对阶时判断错误的情况。输出:注意:阶码为0(浮点数1和2的阶码均为0的结果)注意:浮点数23位数值的计算结果为002,这里我将其设为十进制,但在用的时

7、候还必须将其转变为二进制才可用,例如这个的最后结果应该为1.00000000000000000000010*20,可知结果正确。附录:代码data segmentuser_string db 75,?,72 dup(?)float1_sign db ?float1_jie db ?float1_figure dd ?float1_figure_bu dd ?float2_sign db ?float2_jie db ?float2_figure dd ?float_jie db ?,$result dd ?,$;exitt dw 溢出$tempr dw ?data endscode segme

8、ntmain proc farassume ds:data,cs:codestart:mov ax,data mov ds,ax call inputBAndSelect8 push bx;将下一字符的地址放入堆栈 mov bh,ah;将输入的字符放到bh rol bx,1;取第一个操作码到cf jnc INTEGER;CF=0 jc others;CF=1INTEGER: rol bx,1;取第二个操作码到cf jnc INTEGERadd;CF=0 jc INTEGERsub;CF=1INTEGERadd: call INTEGER_ADDINTEGERsub: call INTEGER_

9、SUBothers: rol bx,1;取第二个操作码到cf jnc INTEGERmul;CF=0 jnz FLOAT;CF=1INTEGERmul: call INTEGER_MULFLOAT: mov bl,0 mov cl,3 rol bx,cl;取第一个定点数放到bl mov ch,bl;转存到ch mov bl,0 rol bx,cl;取第二个定点数放到bl mov cl,bl;转存到cl and cx,cx jz FLOATadd test cx,10h jz FLOATsub test cx,20h jz FLOATmulFLOATadd: call FLOAT_ADDFLOA

10、Tsub: call FLOAT_SUBFLOATmul: call FLOAT_MUL ret main endp;-;=;INPUT BINARY STREAM(读入字符串,并取出前8个字符到ah寄存器中,bx指向字符串的下一字符)inputBAndSelect8 proc near lea bx,user_string mov ah,0ah int 21h mov ch,0 add bx,2;指向真正字符串开始的位置 mov ah,0 mov cl,8 add cl,255beginin: mov al,bx add al,208;将字符串变为数值 mov bx,al add ah,al

11、;将输入的字符串组成一个数 rol ah,1 add bx,1 loop beginin mov al,bx;最后一次不用移位 add al,208;将字符串变为数值 mov bx,al add ah,al;将输入的字符串组成一个数 add bx,1;指向下一个字符 retinputBAndSelect8 endp;=;=;整数加法,bh中只有两个操作数,各三位,最后结果存放到result内存INTEGER_ADD proc near mov bl,0 mov cl,3 rol bx,cl;取第一个操作数放到bl mov ch,bl;转存到ch mov bl,0 rol bx,cl;取第二个操

12、作数放到bl mov cl,bl;转存到ch add ch,cl;第一个操作数和第二个操作数做加法 mov result,ch call DISPLAY_RESULT retINTEGER_ADD endp;=;=;整数减法,bh中只有两个操作数,各三位,最后结果存放到result内存INTEGER_SUB proc near mov bl,0 mov cl,3 rol bx,cl;取第一个操作数放到bl mov ch,bl;转存到cl mov bl,0 rol bx,cl;取第二个操作数放到bl mov cl,bl;转存到ch not cl;将第二个操作数取反 add cl,1;取反加1求补

13、 add ch,cl;第一个操作数和第二个操作数的补相加 mov result,ch call DISPLAY_RESULT retINTEGER_SUB endp;=;=;整数乘法,bh中只有两个操作数,各三位,最后结果存放到result内存INTEGER_MUL proc near mov bl,0 mov cl,3 rol bx,cl;取第一个操作数放到bl mov al,bl;转存到al mov bl,0 rol bx,cl;取第二个操作数放到bl mov dx,0;初始化结果为0 beginmu: shr bx,1;判断最后一位是否为1 jc add1;CF=1 ror dx,1;将

14、最后总和右移,为下一步做铺垫 loop beginmu mov cl,3 rol dx,cl;将最后的结果放到dh保存 mov result,dh;再移到result call DISPLAY_RESULT ret add1: add dh,al ;加第一操作数 ror dx,1;将最后总和右移,为下一步做铺垫 loop beginmu mov cl,3 rol dx,cl;将最后的结果放到dh保存 mov result,dh;再移到result call DISPLAY_RESULT retINTEGER_MUL endp;=;=;浮点数的加法,取相应的数据进行对阶-运算-右归操作FLOAT

15、_ADD proc near call SAVE_FLOAT_DATA mov ch,float1_jie mov cl,float2_jie not ch add ch,1 add cl,ch cmp cl,0 jg DUI_JIE_a;第二个浮点数的阶码比较大 cmp cl,0 jz DUI_JIE2_a not cl add cl,1 cmp cl,0 jg DUI_JIE1_aDUI_JIE_a: mov ch,float2_jie mov float_jie,ch mov ax,float1_figure mov bx,float1_figure+2 xor ch,chbeginmo

16、ve1_a: shr bx,1 shr ax,1 jc adjust_a loop beginmove1_a mov cx,float2_figure mov dx,float2_figure+2 jmp d_addadjust_a: add bx,10h loop beginmove1_a mov cx,float2_figure mov dx,float2_figure+2 jmp d_addDUI_JIE1_a: mov ch,float1_jie mov float_jie,ch mov ax,float2_figure mov bx,float2_figure+2 xor ch,ch

17、beginmove2_a: shr bx,1 shr ax,1 jc adjust1_a loop beginmove2_a mov cx,float1_figure mov dx,float1_figure+2 jmp d_addadjust1_a: add bx,10h loop beginmove2_a mov cx,float1_figure mov dx,float1_figure+2 jmp d_addDUI_JIE2_a: mov ax,float1_jie mov float_jie,ax mov ax,float1_figure mov bx,float1_figure+2

18、mov cx,float2_figure mov dx,float2_figure+2;-;将各个数变为补码d_add: mov ah,float1_sign test ah,1 jz d_add1 mov ah,0 not ax not bx add bx,1 jnc d_add1 add ax,1d_add1: mov ch,float2_sign test ch,1 jz d_add2 mov ch,0 not cx not dx add dx,1 jnc d_add2 add cx,1;-;运算d_add2: add ax,cx add bx,dx jc adjust2_a test

19、ax,80h jnz YOU_GUI_a mov result,ax mov result+2,bx call DISPLAY_JIEcall DISPLAY_RESULTretadjust2_a: add ax,1 test ax,80h jnz YOU_GUI_a mov result,ax mov result+2,bx call DISPLAY_JIEcall DISPLAY_RESULTretYOU_GUI_a: shr bx,1 shr ax,1 jc adjust3_a mov cx,float_jie add cx,1cmp cx,0100hjz exit_a mov floa

20、t_jie,cx mov result,ax mov result+2,bx call DISPLAY_JIEcall DISPLAY_RESULTretadjust3_a: add bx,8000h mov cx,float_jie add cx,1cmp cx,0100hjz exit_a mov float_jie,cx mov result,ax mov result+2,bx call DISPLAY_JIEcall DISPLAY_RESULTexit_a: ;call OVERFLOWretFLOAT_ADD endp;=;=;将剩余数据存到相应内存SAVE_FLOAT_DATA

21、 proc near pop bx;将第一个浮点数的信息存入内存; mov al,bx add al,208 mov bx,al mov float1_sign,al inc bx xor ch,ch mov cl,7 mov ax,0beginf1_jie: mov al,bx add al,208 mov bx,al add ah,al;将输入的字符串组成一个数 rol ah,1 add bx,1;指向下一个字符 loop beginf1_jie mov al,bx add al,208 mov bx,al add ah,al;将输入的字符串组成一个数 ;rol ah,1 add bx,1

22、;指向下一个字符 push bx lea bx,float1_jie ; add bx,2 mov bx,ah pop bx mov cl,15 mov ax,0 mov dx,0beginf1_figure1: mov al,bx add al,208 mov bx,al add dx,al;将输入的字符串组成一个数 rol dx,1 add bx,1;指向下一个字符 loop beginf1_figure1 mov cl,8 mov ch,0beginf1_figure2: mov al,bx add al,208 mov bx,al add dx,al;将输入的字符串组成一个数 shl

23、dx,1 jc ah1 shl ah,1 add ah,0 inc bx loop beginf1_figure2 jmp shr1 ah1: shl ah,1 add ah,1 inc bx loop beginf1_figure2 ; add bx,1;指向下一个字符shr1: shr ah,1 jc shr11 shr dx,1 jmp save1shr11: shr dx,1 add dx,80hsave1: ;push bx ;lea bx,float1_figure mov float1_figure+2,dx mov float1_figure,ah ; pop bx;将第二个浮

24、点数的信息存入内存; mov al,bx add al,208 mov bx,al mov float2_sign,al inc bx xor ch,ch mov cl,7 mov ax,0beginf2_jie: mov al,bx add al,208 mov bx,al add ah,al;将输入的字符串组成一个数 rol ah,1 add bx,1;指向下一个字符 loop beginf2_jie mov al,bx add al,208 mov bx,al add ah,al;将输入的字符串组成一个数 ;rol ah,1 add bx,1;指向下一个字符 push bx lea bx

25、,float2_jie ; add bx,2 mov bx,ah pop bx mov cl,15 mov ax,0 mov dx,0beginf2_figure1: mov al,bx add al,208 mov bx,al add dx,al;将输入的字符串组成一个数 rol dx,1 add bx,1;指向下一个字符 loop beginf2_figure1 mov cl,8 mov ch,0beginf2_figure2: mov al,bx add al,208 mov bx,al add dx,al;将输入的字符串组成一个数 shl dx,1 jc ah2 shl ah,1 ad

26、d ah,0 inc bx loop beginf2_figure2 jmp shr2 ah2: shl ah,1 add ah,1 inc bx loop beginf2_figure2 ; add bx,1;指向下一个字符shr2: shr ah,1 jc shr21 shr dx,1 jmp save2shr21: shr dx,1 add dx,80hsave2: ;push bx ;lea bx,float2_figure mov float2_figure+2,dx mov float2_figure,ah retSAVE_FLOAT_DATA endp;=;=;浮点数的减法,到相

27、应内存取数进行对阶-运算-右归操作FLOAT_SUB proc near call SAVE_FLOAT_DATA mov ch,float1_jie mov cl,float2_jie not ch add ch,1 add cl,ch cmp cl,0 jg DUI_JIE_s;第二个浮点数的阶码比较大 cmp cl,0 jz DUI_JIE2_s not cl add cl,1 cmp cl,0 jg DUI_JIE1_sDUI_JIE_s: mov ch,float2_jie mov float_jie,ch mov ax,float1_figure mov bx,float1_fig

28、ure+2 xor ch,chbeginmove1_s: shr bx,1 shr ax,1 jc adjust_s loop beginmove1_s mov cx,float2_figure mov dx,float2_figure+2 jmp d_subadjust_s: add bx,10h loop beginmove1_s mov cx,float2_figure mov dx,float2_figure+2 jmp d_subDUI_JIE1_s: mov ch,float1_jie mov float_jie,ch mov ax,float2_figure mov bx,flo

29、at2_figure+2 xor ch,chbeginmove2_s: shr bx,1 shr ax,1 jc adjust1_s loop beginmove2_s mov cx,float1_figure mov dx,float1_figure+2 jmp d_subadjust1_s: add bx,10h loop beginmove2_s mov cx,float1_figure mov dx,float1_figure+2 jmp d_subDUI_JIE2_s: mov ax,float1_jie mov float_jie,ax mov ax,float1_figure m

30、ov bx,float1_figure+2 mov cx,float2_figure mov dx,float2_figure+2;-;将各个数变为补码d_sub: mov ah,float1_sign test ah,1 jz d_sub1;如果符号为正 mov ah,0 not ax not bx add bx,1 jnc d_sub1;如果没有进位 add ax,1d_sub1: mov ch,float2_sign test ch,1 jz d_sub2 mov ch,0 not cx not dx add dx,1 jnc d_sub2 add cx,1;-;运算d_sub2: no

31、t cxadd cx,1 not dxadd dx,1jnc d_sub3add cx,1d_sub3: add ax,cx add bx,dx jc adjust2_s test ax,80h jnz YOU_GUI_s mov result,ax mov result+2,bx call DISPLAY_JIEcall DISPLAY_RESULTretadjust2_s: add ax,1 test ax,80h jnz YOU_GUI_s mov result,ax mov result+2,bx call DISPLAY_JIEcall DISPLAY_RESULTretYOU_GU

32、I_s: shr bx,1 shr ax,1 jc adjust3_s mov cx,float_jie add cx,1cmp cx,0100hjz exit_s mov float_jie,cx mov result,ax mov result+2,bx call DISPLAY_JIEcall DISPLAY_RESULTretadjust3_s: add bx,8000h mov cx,float_jie add cx,1cmp cx,0100hjz exit_s mov float_jie,cx mov result,ax mov result+2,bx call DISPLAY_J

33、IEcall DISPLAY_RESULT retexit_s: ;call OVERFLOW retFLOAT_SUB endp;=;=FLOAT_MUL proc near call SAVE_FLOAT_DATA mov ch,float1_jie mov cl,float2_jie not ch add ch,1 add cl,ch cmp cl,0 jg DUI_JIE_m;第二个浮点数的阶码比较大 cmp cl,0 jz DUI_JIE2_m not cl add cl,1 cmp cl,0 jg DUI_JIE1_mDUI_JIE_m: mov ch,float2_jie mov

34、 float_jie,ch mov ax,float1_figure mov bx,float1_figure+2 xor ch,chbeginmove1_m: shr bx,1 shr ax,1 jc adjust_m loop beginmove1_m mov cx,float2_figure mov dx,float2_figure+2 jmp d_muladjust_m: add bx,10h loop beginmove1_m mov cx,float2_figure mov dx,float2_figure+2 jmp d_mulDUI_JIE1_m: mov ch,float1_

35、jie mov float_jie,ch mov ax,float2_figure mov bx,float2_figure+2 xor ch,chbeginmove2_m: shr bx,1 shr ax,1 jc adjust1_m loop beginmove2_m mov cx,float1_figure mov dx,float1_figure+2 jmp d_muladjust1_m: add bx,10h loop beginmove2_m mov cx,float1_figure mov dx,float1_figure+2 jmp d_mulDUI_JIE2_m: mov a

36、x,float1_jie mov float_jie,ax mov ax,float1_figure mov bx,float1_figure+2 mov cx,float2_figure mov dx,float2_figure+2;-;将各个数变为补码d_mul: mov ah,float1_sign test ah,1 jz d_mul1;如果符号为正 mov ah,0 not ax not bx add bx,1 jnc d_mul1;如果没有进位 add ax,1d_mul1: mov ch,float2_sign test ch,1 jz d_mul2 mov ch,0 not c

37、x not dx add dx,1 jnc d_mul2 add cx,1d_mul2: mov float1_figure+2,bx mov float1_figure,ax mov float2_figure+2,dx mov float2_figure,cx not bx not ax add ax,1 add bx,1 jnc d_mul3 add ax,1d_mul3: mov float1_figure_bu+2,bx mov float1_figure_bu,ax mov ch,0 mov cl,16 mov dx,float2_figure+2 mov al,0 mov bx,

38、0booth: push cx mov cx,tempr shr dx,1 jc yn1;yn=1 cmp ah,0 jz rmove;ynyn+1=00 mov al,0 add bx,float1_figure add cx,float1_figure+2 jnc rmove add bx,1 jmp rmoveyn1: cmp al,1 jz rmove;ynyn+1=11 mov al,1 add bx,float1_figure_bu add cx,float1_figure_bu+2 jnc rmove add bx,1rmove: shr cx,1 jc rmove1;cx最低位

39、是否为1 shr ah,1 shr bx,1 jc rmove2 mov tempr,cx pop cx loop booth jmp booth1rmove1: shr ah,1 add ax,8000h shr bx,1 jc rmove2 mov tempr,cx pop cx loop booth jmp booth1rmove2: add cx,8000h mov tempr,cx pop cx loop boothbooth1: mov dl,float2_figure+1 mov dh,al mov cx,8beginloop: push cx mov cx,tempr shr

40、dl,1 jc yn11;yn=1 cmp dh,0 jz rmove00;ynyn+1=00 mov dh,0 add bx,float1_figure add cx,float1_figure+2 jnc rmove00 add bx,1 jmp rmove00yn11: cmp dh,1 jz rmove00;ynyn+1=11 mov dh,1 add bx,float1_figure_bu add cx,float1_figure_bu+2 jnc rmove00 add bx,1rmove00: shr cx,1 jc rmove10;cx最低位是否为1 shr ax,1 shr

41、bx,1 jc rmove20 mov tempr,cx pop cx loop beginloop jmp cmulrmove10: shr ax,1 add ax,8000h shr bx,1 jc rmove2 mov tempr,cx pop cx loop beginloop jmp cmulrmove20: add cx,8000h mov tempr,cx pop cx loop beginloopcmul: shl bx,1 shl cx,1 jnc cmul1 add bx,1cmul1: shl ax,1 jnc cmul2 add cx,1cmul2: mov cx,1;

42、因为ax中有值,采用舍去时进位 mov result,bx mov result+2,cx mov ax,float1_jie mov bx,float2_jie add ax,bx cmp ax,0100h jg exit_m mov float_jie,al call DISPLAY_JIE call DISPLAY_RESULT retexit_m: ;call OVERFLOW retFLOAT_MUL endp;=;=;将浮点数的阶码输出到屏幕上DISPLAY_JIE proc near lea bx,float_jie mov ax,bx add ax,30h mov bx,ax

43、mov dx,bx mov ah,09 int 21h retDISPLAY_JIE endp;=;=;将result的结果输出到屏幕上DISPLAY_RESULT proc near lea bx,result mov ax,bx mov cx,bx+2 add ax,3030h;将其变为字符 add cx,3030h;将其变为字符 cmp ah,3ah jl print2 add ah,7hprint1: cmp al,3ah jl print2 add al,7hprint2: cmp ch,3ah jl print3 add ch,7hprint3: cmp cl,3ah jl print4 add cl,7hprint4: mov result,ax mov result+2,cx mov dx,bx mov ah,09 int 21h ret mov ax,4c00h int 21hDISPLAY_RESULT endp;=;=;OVERFLOWproc near ;lea dx,exitt ;mov ah,09 ;int 21h ;mov ax,4c00h ;int 21h ;ret;OVERFLOW endp;= code endsend start

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!