计算机系统基础期中考试,计算机系统基础第二次作业.docx

文档介绍:

计算机系统基础第二次作业3、对于以下AT&T格式汇编指令,根据操作数的长度确定对应指令助记符中的长度后缀,并说明每个操作数的寻址方式。(1)mov8(%ebp,%ebx,4),%ax(2)mov%al,12(%ebp)(3)add(,%ebx,4),%ebx(4)or(%ebx),%dh(5)push$0xF8(6)mov$0xFFF0,%eax(7)test%cx,%cx(8)lea8(%ebx,%esi),%eax答:如下表所示:题目编号长度后缀源操作数目的操作数(1)w基址+比例变址+位移寄存器(2)b寄存器基址+位移(3)l比例变址寄存器(4)b基址寄存器(5)l立即数栈(6)l立即数寄存器(7)w寄存器寄存器(8)l基址+变址+位移寄存器4.使用汇编器处理以下各行AT&T格式代码时都会产生错误,请说明每一行存在什么错误。(1)movl0xFF,(%eax)(2)movb%ax,12(%ebp)(3)addl%ecx,$0xF0(4)orw$0xFFFF0,(%ebx)(5)addb$0xF8,(%dl)(6)movl%bx,%eax(7)andl%esi,%esx(8)movw8(%ebp,,4),%ax答:(1)书写错误。因为源操作数是立即数0xFF,所以需要在前面加上‘$’(2)由于源操作数(%ax)是16位,而长度后缀是字节‘b’,所以不一致,应改为‘movw’(3)目的操作数不能是立即数寻址(4)操作数位数超过16位,而长度后缀为16位的‘w’,应改为‘orl’(5)不能用8位寄存器作为目的操作数地址所在寄存器(6)源操作数寄存器与目的操作数寄存器长度不一致(7)不存在ESX寄存器(8)源操作数地址中缺少变址寄存器7.假设变量x和y分别存放在寄存器EAX和ECX中,请给出以下每条指令执行后寄存器EDX中的结果。(1)leal(%eax),%edx(2)leal4(%eax,%ecx),%edx(3)leal(%eax,%ecx,8),%edx(4)leal0xC(%ecx,%eax,2),%edx(5)leal(,%eax,4),%edx(6)leal(%eax,%ecx),%edx答:(1)R[edx]=x//把eax的值放到edx中去(2)R[edx]=x+y+4//把eax+ecx+4的值放到edx中去(3)R[edx]=x+8*y//把eax+8*ecx的值放到edx中去(4)R[edx]=y+2*x+12//把ecx+2*eax+12的值放到edx中去(5)R[edx]=4*x//把4*eax的值放到edx中去(6)R[edx]=x+y//把eax+ecx的值放到edx中去8.假设以下地址以及寄存器中存放的机器数如下表所示地址机器数寄存器机器数0x80493000xfffffff0EAX0x80493000x80494000x80000008EBX0x1000x80493840x80f7ff00ECX0x100x80493800x908f12a8EDX0x80分别说明执行以下指令或寄存中的内容交发生改变?改变后的内容是什么条件标志OF、SF、ZF和CF会发生什么改变。(1)指令功能为:R[edx]←R[edx]+M[R[eax]]=0x00000080+M[0x8049300],寄存器EDX中内容改变。改变后的内容为以下运

内容来自淘豆网www.taodocs.com转载请标明出处.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值