热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

计算机基础08版第2次作业,计算机系统基础第二次作业

1、计算机系统基础第二次作业计算机系统基础第二次作业3、对于以下AT&T格式汇编指令,根据操作数的长度确定对应指令助记符中的长度后缀,并说明每个操作数的

1、计算机系统基础第二次作业计算机系统基础第二次作业 3、对于以下AT&T格式汇编指令,根据操作数的长度确定对应指令助记符中的长度后缀,并说明每个操作数的寻址方式。 (1)mov 8(?p, ?x, 4), %ax (2)mov %al, 12(?p) (3)add ( , ?x,4), ?x (4)or (?x), %dh (5)push $0xF8 (6)mov $0xFFF0, x (7)test %cx, %cx (8)lea 8(?x, %esi), x 答:如下表所示: 题目编号 长度后缀 源操作数 目的操作数 (1) w 基址+比例变址+位移 寄存器 (2) b 寄存器 基址+位移 。

2、(3) l 比例变址 寄存器 (4) b 基址 寄存器 (5) l 立即数 栈 (6) l 立即数 寄存器 (7) w 寄存器 寄存器 (8) l 基址+变址+位移 寄存器 4 使用汇编器处理以下各行AT&T格式代码时都会产生错误,请说明每一行存在什么错误。 (1)movl 0xFF, (x) (2)movb %ax, 12(?p) (3)addl x, $0xF0 (4)orw $0xFFFF0, (?x) (5)addb $0xF8, (%dl) (6)movl %bx, x (7)andl %esi, %esx (8)movw 8(?p, , 4), %ax 答: (1)书写错误。因为源。

3、操作数是立即数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 (x), x (2)leal 4(x, x), x (3)leal (x, x, 8),。

4、 x (4)leal 0xC(x, x, 2), x (5)leal ( , x, 4), x (6)leal (x, x), x 答: (1)Redx=x /把eax的值放到edx中去 (2)Redx=x+y+4 /把eax+ecx+4的值放到edx中去 (3)Redx=x+8*y /把eax+8*ecx的值放到edx中去 (4)Redx=y+2*x+12 /把ecx+2*eax+12的值放到edx中去 (5)Redx=4*x /把4*eax的值放到edx中去 (6)Redx=x+y /把eax+ecx的值放到edx中去 8假设以下地址以及寄存器中存放的机器数如下表所示 地址 0x80493。

5、00 0x8049400 0x8049384 0x8049380 机器数 0xfffffff0 0x80000008 0x80f7ff00 0x908f12a8 寄存器 EAX EBX ECX EDX 机器数 0x8049300 0x100 0x10 0x80 分别说明执行以下指令或寄存中的内容交发生改变?改变后的内容是什么条件标志OF 、 SF 、 ZF 和 CF 会发生什么改变。 (1)指令功能为:RedxRedx+MReax=0x00000080+M0x8049300,寄存器EDX中内容改变。改变后的 内容为以下运算的结果:00000080H+FFFFFFF0H 0000 0000 00。

6、00 0000 0000 0000 1000 0000 +1111 1111 1111 1111 1111 1111 1111 0000 _______________________________________________ 1 0000 0000 0000 0000 0000 0000 0111 0000 因此,EDX中的内容改变为0x00000070。根据表3.5可知,加法指令会影响OF、SF、ZF和CF标志。OF=0,ZF=0,SF=0,CF=1。 (2)指令功能为:Recx Recx-MReax+Rebx=0x00000010+M0x8049400, 寄存器ECX中内容改变。 。

7、改变后的内容为以下运算的结果:00000010H-80000008H。 0000 0000 0000 0000 0000 0000 0001 0000 +0111 1111 1111 1111 1111 1111 1111 1000 _______________________________________________ 0 1000 0000 0000 0000 0000 0000 0000 1000 根据表3.5可知,减法指令会影响OF、SF、ZF和CF标志。OF=1,ZF=0,SF=1,CF=1?0=1。 (3)指令功能为:RbxRbx or MReax+Recx*8+4,寄存器B。

8、X中内容改变。改变后的内容为以下运算 的结果:0x0100 or M0x8049384=0100H or FF00H 0000 0001 0000 0000 or1111 1111 0000 0000 _______________________________________________ 1111 1111 0000 0000 因此,BX中的内容改为0xFF00。由3.3.3节可知,OR指令执行后OF=CF=0;因为结果不为0,故ZF=0;因为最高位为1,故SF=1。 (4)test指令不改变任何通用寄存器,但根据以下“与”操作改变标志:Rdl and 0x80 1000 0000 a。

9、nd1000 0000 __________________ 1000 0000 由3.3.3节可知,TEST指令执行后OF=CF=0;因为结果不为0,故ZF=0;因为最高位为1,故SF=1。 (5)指令功能为:MReax+RedxMReax+Redx*32,即存储单元0x8049380中的内容改变为以下运算 的结果:M0x8049380*32=0x908f12a8*32,也即只要将0x908f12a8左移5位即可得到结果。1001 0000 1000 1111 0001 0010 1010 1000=0001 0001 1110 0010 0101 0101 0000 0000 因此,指令执行后,单元0x8049380中的内容改变为0x11e25500。显然,这个结果是溢出的。但是,根据表3.5可知,乘法指令不影响标志位,也即并不会使OF=1。 (6)指令功能为:Rcx Rcx-1,即CX寄存器的内容减一。 0000 0000 0001 0000 + 1111 1111 1111 1111 _________________________ 1 0000 0000 0000 1111 因此,指令执行后CX中的内容从0x0010变为0x000F。由表3.5可知,DEC指令会影响OF、ZF、SF,根据上述运算结果,得到OF=0,ZF=0,SF=0。。



推荐阅读
  • MySQL InnoDB 存储引擎索引机制详解
    本文深入探讨了MySQL InnoDB存储引擎中的索引技术,包括索引的基本概念、数据结构与算法、B+树的特性及其在数据库中的应用,以及索引优化策略。 ... [详细]
  • 前端开发PPT页面与评论区展示优化
    本文介绍了如何在前端开发中实现一个类似于StackOverflow样式的PPT展示页面和评论区,提供了项目源代码及在线演示链接,并分享了开发过程中遇到的挑战及其解决方案。 ... [详细]
  • 本文探讨了在UIScrollView上嵌入Webview时遇到的一个常见问题:点击图片放大并返回后,Webview无法立即滑动。我们将分析问题原因,并提供有效的解决方案。 ... [详细]
  • 本文介绍了如何使用 VBScript 脚本在 IE7 上安装 Windows 序列号的方法。对于使用超级解霸的用户,如果遇到 .vbs 文件无法正常运行的问题,文中也提供了相应的解决办法。 ... [详细]
  • 本文详细介绍了在单片机编程中常用的几个C库函数,包括printf、memset、memcpy、strcpy和atoi,并提供了具体的使用示例和注意事项。 ... [详细]
  • 本文通过一个简单的示例,展示如何使用ASP技术生成HTML文件。示例包括两个页面:首页index.htm和处理页面send.asp。 ... [详细]
  • 本文介绍了如何在GTK+2中实现透明背景下的小部件叠加绘制,类似于GTK3中的GtkOverlay功能。 ... [详细]
  • Excel VBA自动化添加数字证书(续)
    本文继续探讨如何在Excel VBA中自动添加数字证书。上一篇文章因突发情况未能完成,本次将详细介绍证书的生成和集成方法。 ... [详细]
  • MyBatisCodeHelperPro 2.9.3 最新在线免费激活方法
    MyBatisCodeHelperPro 2.9.3 是一款强大的代码生成工具,适用于多种开发环境。本文将介绍如何在线免费激活该工具,帮助开发者提高工作效率。 ... [详细]
  • 本文介绍如何在Access VBA中处理参数查询时将整数正确地传递给查询,避免因类型转换导致的数据类型不匹配错误。 ... [详细]
  • Lua IO操作详解
    本文介绍了Lua中的IO操作,包括简单模式和完整模式下的文件处理方法,以及相关的系统调用。 ... [详细]
  • 使用 Jupyter Notebook 实现 Markdown 编写与代码运行
    Jupyter Notebook 是一个开源的基于网页的应用程序,允许用户在同一文档中编写 Markdown 文本和运行多种编程语言的代码,并实时查看运行结果。 ... [详细]
  • Linux 数据流重定向详解
    本文详细介绍了 Linux 系统中的数据流重定向技术,包括标准输出(stdout)、标准错误输出(stderr)和标准输入(stdin)的重定向方法,以及其在实际应用中的具体示例。 ... [详细]
  • 自然语言处理(NLP)——LDA模型:对电商购物评论进行情感分析
    目录一、2020数学建模美赛C题简介需求评价内容提供数据二、解题思路三、LDA简介四、代码实现1.数据预处理1.1剔除无用信息1.1.1剔除掉不需要的列1.1.2找出无效评论并剔除 ... [详细]
  • 使用Java开发简易文本编辑器
    作为一名初学者,虽然之前有使用VB.NET和C#开发文本编辑器的经验,但在尝试用Java实现相同功能时,感觉Java的图形界面组件不如微软的产品(如C#和VB.NET)那么友好。本文将分享我在Java中开发简易文本编辑器的过程,并探讨Java在图形界面方面的优缺点。 ... [详细]
author-avatar
丨为你
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有