请写出INT指令是如何设置一个自定义中断号的中断执行程序执行时遇到断点就停止执行吗的?执行该指令之后堆

解释: 你选择了他 是指做题的时候的选择,结合我的得分 就可以知道我选的对不对了,选项后面有个1 的是我之后补充的,不一定对,大多数只是猜测,所以只能作为参考标题: 执行测验: CH3-2020描述: 无描述题号: 1分数: 得 10 分,满分 10 分问题: 某C语言程序中对数组变量b的声明为“int b[10][5]有一条for语句如下:for (i=0; i<10, i++)for (j=0; j<5; j++)sum+= b[i][j];假设执行到“sum+= b[i][j];"时,sum 的值在EAX中,b[i][0] 所在的地址在EDX中,j在ESI中,则“"sum+= b[i][j];"所对应的指令(AT&T格式)可以是( )你的答案:1、 addl 0(%edx, %esi, 2), %eax2、 addl 0(%esi;, %edx, 2), %eax3、 addl 0(%esi, %edx, 4), %eax4、 addl 0(%edx, %esi, 4), %eax :你选择了他题号: 2分数: 得 0 分,满分 10 分问题: 以下关于if (cond _expr)then. satementelseelse Statement选择结构对应的机器级代码表示的叙述中,错误的是( )。你的答案:1、 对应then_ statement 的代码一定在对应else_ statement 的代码之前 1https://blog.csdn.net/weixin_44711037/article/details/905478602、 一定包含一条无条件转移指令 :你选择了他3、 一定包含一条条件转移指令(分支指令)4、 计算cond expr的代码段一定在条件转移指令之前猜一下 因为可以是if 跳转 也可以是if 不跳转答案:1、 对应then_ statement 的代码一定在对应else_ statement 的代码之前题号: 3分数: 得 10 分,满分 10 分问题: 以下有关C语言程序的变量的作用域和生存期的叙述中,错误的是( )。你的答案:1、 静态(static型)变量和非静态局部(auto型)变量都分配在对应栈帧中 :你选择了他2、 不同过程中的非静态局部变量可以同名,是因为它们被分配在不同栈帧中3、 非静态局部变量可以和全局变量同名,是因为它们被分配在不同存储区4、 因为非静态局部变量被分配在栈中,所以其作用域仅在过程体内题号: 4分数: 得 10 分,满分 10 分问题: 以下有关缓冲区溢出以及缓冲区溢出攻击的叙述中,错误的是( )。你的答案:1、 只要发生缓冲区溢出,CPU就会跳转到恶意程序事先设定好的程序去执行 :你选择了他2、 当传送到栈中局部数组中的字符的个数超过数组长度时发生缓冲区溢出3、 恶意程序可利用像strcpy等无字符串长度设定的c库函数进行缓冲区溢出攻击4、 只要发生缓冲区溢出,寄存器内容或变量或返回地址等程序信息就可能被修改题号: 5分数: 得 10 分,满分 10 分问题: 假定全局short型数组a的起始地址为0x804908c,则a[2]的地址是( )。你的答案:1、 0x80490922、 0x804908e3、 0x80490944、 0x8049090 :你选择了他题号: 6分数: 得 10 分,满分 10 分问题: IA-32中指令“ pushl %ebp"的功能是( )你的答案:1、 M[R[esp]]←R[ebp], R[esp] ←R[esp]+42、 R[esp]←R[esp]+4, M[R[esp]] ←R[ebp]3、 R[esp]←R[esp]-4, M[R[esp]] ←R[ebp] :你选择了他4、 M[R[esp]]←R[ebp], R[esp] ←R[esp]-4题号: 7分数: 得 10 分,满分 10 分问题: 假定全局数组a的声明为char *a[8], a的首地址为0x80498c0, i在ECX中,现要将a[i]取到EAX相应宽度的寄存器中,则所用的汇编指令是( )。你的答案:1、 mov 0x80498c0(,%ecx), %ah2、 mov (0x80498c0, %ecx, 4), %eax3、 mov (0x80498c0, %ecx), %ah4、 mov 0x80498c0(, %ecx, 4), %eax :你选择了他题号: 8分数: 得 10 分,满分 10 分问题: 假设short型变量x被分配在寄存器AX中,若R[ax]=FF70H,则执行指令“salw $2, %ax”后,变量x的机器数和真值分别是( )你的答案:1、 FDC0H, -576 :你选择了他2、 FDC3H,-5733、 FFDCH, -364、 3FDC,16348题号: 9分数: 得 10 分,满分 10 分问题: 以下关于IA-32中整数运算指令所支持的操作数的叙述中,错误的是( )。你的答案:1、 对于乘除运算指令,操作数一定区 分是无符号整数还是带符号整数2、 除乘法指令外,其他运算指令的源操作数和目的操作数的位数相等 :你选择了他3、 参加运算的操作数可以是一个字节(8b)、一个字(16b)或双字(32b)4、 对于加减运算指令,操作数不区分是无符号整数还是带符号整数题号: 10分数: 得 10 分,满分 10 分问题: IA-32 中指令“movl 8(%ebp), %edx” 的功能是()你的答案:1、 R[ebp]+8←R[edx]2、 M[R[ebp]+8] ←R[edx]3、 R[edx]←M[R[ebp]+8] :你选择了他4、 R[edx]←R[ebp]+8题号: 11分数: 得 0 分,满分 10 分问题: 假定全局数组a的声明为double *a[8],a的首地址为0x80498c0,i在ECX中,现要将a[i]取到EAX相应宽度的寄存器中,则所用的汇编指令是( )你的答案:1、 mov (0x80498c0, %ecx, 4), %eax 12、 mov 0x80498c0( ,%ecx, 8), %eax3、 mov (0x80498c0, %ecx, 8), %eax4、 mov 0x80498c0(, %ecx, 4), %eax答案:4、 mov 0x80498c0(, %ecx, 4), %eax指针是4个byte()里面不能写地址 写的是寄存器题号: 12分数: 得 10 分,满分 10 分问题: 以下有关IA-32的过程调用所使用的栈和栈帧的叙述中,错误的是( )你的答案:1、 每进行一次过程调用,用户栈从高地址向低地址增长出二个栈帧2、 从被调用过程返回调用过程之前,被调用过程会释放自己的栈帧3、 过程嵌套调用深度越深,栈中栈帧个数越多,严重时会发生栈溢出4、 只能通过将栈指针ESP作为基址寄存器来访问用户栈中的数据 :你选择了他题号: 13分数: 得 10 分,满分 10 分问题: 假定静态short型二维数组b的声明如下:static short b[2][4]={ {2, 9, -1, 5}, {3, 1, -6, 2 }};若b的首地址为0x8049820,则按行优先存储方式下,地址0x804982c中的内容是( )。你的答案:1、 0xfa :你选择了他2、 0xff3、 0x004、 0x05题号: 14分数: 得 0 分,满分 10 分问题: 某C语言程序中有以下两个变量声明:int a[10];int *ptr=&a[0];则ptr+i的值为( )。你的答案:1、 &a[0]+i :你选择了他2、 &a[0]+2xi3、 &a[0]+4xi 1int 是4个byte的4、 &a[0]+8xi题号: 15分数: 得 0 分,满分 10 分问题: 程序P中有两个int类型变量i和j,被分别分配在寄存器EAX和EDX中,P中存在以下if语句:if (i<j) { };该if语句对应的指令序列一定不会是( )你的答案:1、 cmpl %eax, %edx jle 804847c :你选择了他2、 cmpl %edx, %eax jl 80484603、 cmpl %eax, %edx jg 80484804、 cmpl %eax, %edx ja 8048380edx -eax <=0 j-i<=0 这个时候可以是执行{} 也可以是跳过{}所以也可以相当于 j>i 就 {} 所以可以为什么i-j <0j-i>0j-i >0 然而这个我也不太清楚 猜一下是因为ja 是usigned 和 int 不一样吧ans:4、 cmpl %eax, %edx ja 8048380题号: 16分数: 得 0 分,满分 10 分问题: 程序P中有两个变量i和j,被分别分配在寄存器EAX和EDX中,P中语句“if(i<j) { }”对应的指令序列如下(左边为指令地址,中间为机器代码,右边为汇编指令):804846a
39 c2
cmpl %eax, %edx
804846c
7e 0d
jle
xxxxxxxxx
若执行到804846a处的cmpl指令时,i=105, j=100,则jle指令执行后将会转到( )处的指令执行。你的答案:1、 80484612、 804846e3、 8048479 :你选择了他4、 804847b答案:4、 804847b引用的解析https://blog.csdn.net/qq_43176366/article/details/103104302
解析:A、因为cmpl指令中EDX内容为100,EAX内容为105,对这两个数做减法,显然100<105,满足jle指令小于或等于的条件,执行完jle指令后将转移到PC+偏移量=0x84846c+2+0d=0x804847b去执行。
那个2 应该是说pc会跑到下面的846c+2==846e这句话上吧 所以要+20d 应该是偏移量7e 可能是cmp的 机器码edx -eax 100-105 小于 jmp addr+2+0d题号: 17分数: 得 10 分,满分 10 分问题: 假定局部int型数组a的首地址在EDX中,i在ECX中,现要将a[i]取到EAX相应宽度的寄存器中,则所用的汇编指令是( )你的答案:1、 mov (%edx, %ecx, 4), %eax :你选择了他2、 mov (%edx, %ecx, 4), %ax3、 mov (%edx, %ecx, 2), %eax4、 mov (%edx, %ecx, 2), %ax题号: 18分数: 得 10 分,满分 10 分问题: 以下有关IA-32/Linux的过程调用的叙述中,错误的是( )你的答案:1、 在过程中通常先使用被调用者保存寄存器 :你选择了他2、 通常EBP寄存器指向对应栈帧(stack frame)的底部3、 通常每个栈帧底部单元中存放其调用过程的EBP内容4、 每个过程都有一个栈帧,其大小为16B的倍数题号: 19分数: 得 10 分,满分 10 分问题: 以下有关递归过程调用的叙述中,错误的是( )。你的答案:1、 递归过程第一个参数的有效地址为R[ebp]+82、 每次递归调用都会生成-个新的栈帧,因而空间开销大3、 可能需要执行递归过程很多次,因而时间开销大4、 每次递归调用在栈帧中保存的返回地址都不相同 :你选择了他题号: 20分数: 得 10 分,满分 10 分问题: 假定静态short型二维数组b的声明如下: static short b[2][4]={ {2, 9, -1,5}, {3,8, 2, -6}};若b的首地址为0x8049820,则按行优先存储方式下,数组元素“8” 的地址是( )。你的答案:1、 0x80498282、 0x80498253、 0x80498244、 0x804982a :你选择了他题号: 21分数: 得 0 分,满分 10 分问题: 假定int型数组a的首址在ECX中,则“a送EAX"所对应的汇编指令是( )。你的答案:1、 leal (%ecx, 0), %eax :你选择了他2、 movl %edx, %eax3、 leal (%ecx, 4), %eax4、 movl %ecx, %eax猜测:这个看起来是送一个地址的意思 所以不是lea吗https://blog.csdn.net/swordmanwk/article/details/41169953这是个加法eax =ecx+0 为什么不是这个答案呢1、 leal (%ecx, 0), %eax好的 我知道了 原因是i am an idiotecx里面存了个地址 就是把ecx里的东西mov出来用lea 的时候是 有括号的那种,算出来的直接送到eax遇到题目感觉不对 还是不要马上怀疑题目出错。。。不要太自以为是。。。这波老师考试的时候直接把题目改成4 movl (%ecx), %eax那么是不是这个不能选了啊然后多了个这个选项leal %ecx, %eax那这个能选吗,我是个废物,永远搞不懂了,请高人自己搞懂吧o(╥﹏╥)o答案我不知道但是bb上显示的是:4、 movl %ecx, %eax题号: 22分数: 得 0 分,满分 10 分问题: 假设R[ax]=FFE8H, R[bx]=7FE6H,执行指令“ subw %bx, %ax"后,寄存器的内容和各标志的变化为( )你的答案:1、 R[ax]=8002H, OF=0,SF=1, CF=0,ZF=02、 R[bx]=8002H, OF=0, SF=1, CF=0, ZF=03、 R[bx]=8002H, OF=1, SF=1, CF=0,ZF=0 :你选择了他4、 R[ax]=8002H, OF=1, SF=1, CF=0,ZF=0FFE87FE68002cf=0sf=1负数-正数=负数算出来也正常 of=0答案:2、 R[bx]=8002H, OF=0, SF=1, CF=0, ZF=0题号: 23分数: 得 10 分,满分 10 分问题: IA-32中指令“leal 8(%edx, %esi, 4), %edx"的功能是( )你的答案:1、 R[edx]←R[edx]+R[esi]*4+8 :你选择了他2、 R[esi]+R[edx]*4+8←R[edx]3、 R[edx]+R[esi]*4+8←R[edx]4、 R[edx]←R[esi]+R[edx]*4+8题号: 24分数: 得 0 分,满分 10 分问题: 假设R[ax]=FFE8H, R[bx]=7FE6H, 执行指令“ addw %bx, %ax"后,寄存器的内容和各标志的变化为( )你的答案:1、 R[ax]=7FCEH,OF=1, SF=0, CF=0, ZF=0 :你选择了他异号相加不可能溢出 OF=02、 R[bx]=7FCEH,OF=0,SF=0,CF=1, ZF=03、 R[ax]=7FCEH, OF=0, SF=0, CF=1, ZF=0 14、 R[bx]=7FCEH, OF=1, SF=0, CF=0,ZF=0f+7 进位了,cf=1答案:3、 R[ax]=7FCEH, OF=0, SF=0, CF=1, ZF=0题号: 25分数: 得 0 分,满分 10 分问题: 假定静态short 型二维数组b和指针数组pb的声明如下:static short b[2][4] ={ {2, 9, -1, 5}, {3, 1, -6, 2 }};static short * pb[2]={b[0], b[1]}若b的首地址为0x8049820,则&pb[1]的值是( )。你的答案:b 占用了 8 * 2b从这个开始 0x8049820 ,所以pb从0x8049820+ 8 * 2 开始,就是0x8049830因为一个pb是一个short * , 是4bit ,所以&pb[1]是0x8049830+4==0x8049834注意有& , 取的是pb[1] 的地址1、 0x8049834 选择这个2、 0x80498323、 0x80498384、 0x8049830题号: 26分数: 得 10 分,满分 10 分问题: 以下关于IA-32指令格式的叙述中,错误的是( )你的答案:1、 指令中给出的操作数所在的通用寄存器的宽度总是32位 :你选择了他2、 采用变长指令字格式,指令长度从整个字节到十几个字节不等3、 指令中指出的位移量和立即数的长度可以是0、1、2或4个字节4、 采用变长操作码,操作码位数可能是5位到十几位不等题号: 27分数: 得 10 分,满分 10 分问题: 以下关于各类控制转移指令的叙述中,错误的是( )你的答案:1、 调用指令(CALL)和返回指令(RET)都是特殊的无条件转移指令2、 条件转移指令(Jcc)的判断条件可用于整数之间和浮点数之间的大小比较 :你选择了他3、 条件转移指令(Jcc) 将根据EFLAGS寄存器中的标志信息进行条件判断4、 无条件转移指令(JMP) 直接将转移目标地址送到EIP寄存器中题号: 28分数: 得 0 分,满分 10 分问题: 4.指令集体系结构(ISA) 是计算机系统中必不可少的一个抽象层,它是对硬件的抽象,软件通过它所规定的指令系统规范来使用硬件。以下有关ISA的叙述中,错误的是( )你的答案:1、 ISA规定了指令的操作数类型、寄存器结构、存储空间大小、编址方式和大端/小端方式 :你选择了他2、 ISA规定了指令获取操作数的方式,即寻址方式3、 ISA规定了所有指令的集合,包括指令格式和操作类型4、 ISA规定了执行每条指令时所包含的控制信号 1题号: 29分数: 得 0 分,满分 10 分问题: 程序P中有两个unsigned类型变量i和j,被分别分配在寄存器EAX和EDX中,P中存在以下if语句: if (i<j) { … } ;该if语句对应的指令序列一定不会是( )。你的答案:1、 cmpl %edx, %eax jb 8048460i-j<02、 cmpl %eax, %edx ja 8048380 :你选择了他j-i>03、 cmpl %eax, %edx jae 8048480 1j-i >=04、 cmpl %eax, %edx Jbe 804847cj-i <=0题号: 30分数: 得 0 分,满分 10 分问题: 以下关于IA-32的定点寄存器组织的叙述中,错误的是( )。你的答案:https://www.cnblogs.com/nonlinearthink/p/11809347.html1、 EIP/IP为指令指针寄存器,即PC; EFLAGS/FLAGS 为标志寄存器2、 每个通用寄存器都可作为32位、16 位或8位寄存器使用 1 esp ebp 不行3、 寄存器ESP/SP称为栈指针寄存器, EBP/BP 称为基址指针寄存器 :你选择了他4、 寄存器EAX/AX/AL称为累加器,ECX/CX/CL称为计数寄存器题号: 31分数: 得 10 分,满分 10 分问题: 假设P为调用过程,Q为被调用过程,程序在IA-32处理器上执行,以下有关过程调用的叙述中,错误的是( )、你的答案:1、 从P跳转到Q执行应使用CALL指令2、 从P传到Q的实参无需重新分配空间存放 :你选择了他3、 从Q跳回到P执行应使用RET指令4、 C语言程序中的函数调用就是过程调用题号: 32分数: 得 10 分,满分 10 分问题: IA-32中指令“movl 8(%edx, %esi, 4), %edx"的功能是( )你的答案:1、 R[edx]←M[R[edx]+R[esi]*4+8] :你选择了他2、 M[R[edx]+R[esi]*4+8]← R[edx]3、 R[edx]←M[R[esi]+R[edx]*4+8]4、 M[R[esi]+R[edx]*4+8]←R[edx]题号: 33分数: 得 10 分,满分 10 分问题: 假设R[eax]=FF000008H, R[ecx]=00001000H,执行指令“ testl %eax, %ecx”后,寄存器的内容和标志变为( ) 。你的答案:1、 寄存器内容不变,OF=CF=SF=0, ZF=1 :你选择了他2、 R[ecx]=00000000H,OF=CF=SF=0,ZF=13、 R[eax]=00000000H,OF=CF=SF=0, ZF=14、 R[ecx]=0000000H,标志不变题号: 34分数: 得 10 分,满分 10 分问题: 假定局部数组a的声明为int a[4)={0,-1, 300, 20},a的首地址为R[ebp]-16,则在地址R[ebp]- 4处存放的是( )。你的答案:1、 02、 20 :你选择了他3、 3004、 -1题号: 35分数: 得 10 分,满分 10 分问题: 以下关于1A-32处理器对齐方式的叙述中,错误的是( )。你的答案:1、 不同操作系统采用的对齐策略可能不同2、 对于同-一个struct型变量,在不同对齐方式下可能会占用不同大小的存储区3、 可以用编译指导语句(如tpragma pack)设置对齐方式4、 总是按其数据宽度进行对齐,例如double型变量的地址总是8的倍数 :你选择了他题号: 36分数: 得 10 分,满分 10 分问题: 以下关于 IA-32指令寻址方式的叙述中,错误的是( )。你的答案:1、 存储器操作数中最复杂的寻址方式是“ 基址加比例变址加位移”2、 操作数可以是指令中的立即数,也可以是通用寄存器或存储单元中的内容3、 对于寄存器操作数,必须在指令中给出通用寄存器的3位编号4、 相对寻址的目标地址为“PC 内容加位移”,PC内容指当前正在执行指令的地址 :你选择了他题号: 37分数: 得 10 分,满分 10 分问题: 假定全局double型数组a的起始地址为0x804908c,则a[i]的地址是( )你的答案:1、 0x804908c+2i2、 0x804908c+8i :你选择了他3、 0x804908c+i4、 0x804908c+4* i题号: 38分数: 得 10 分,满分 10 分问题: 假设P为调用过程,Q为被调用过程,程序在IA-32处理器上执行,以下是C语言程序中过程调用所涉及的操作:①过程Q保存P的现场,并为非静态局部变量分配空间②过程P将实参存放到Q能访问到的地方③过程P将返回地址存放到特定处,并跳转到Q执行④过程Q取出返回地址,并跳转回到过程P执行⑤过程Q恢复P的现场,并释放局部变量所占空间⑥执行过程Q的函数体过程调用的正确执行步骤是( )你的答案:1、 ②→③→④→①→⑤→⑥2、 ②→③→①→④→⑥→⑤3、 ②→③→①→⑥→⑤→④ :你选择了他4、 ②→③→①→⑤→⑥→④题号: 39分数: 得 0 分,满分 10 分问题: 假定int型数组a的首址在 ECX中,i在EDX中, 则“&a[i]-a 送EAX"所对应的汇编指令是( )。你的答案:a +i -a ==i1、 leal ( ,%edx, 4), %eax :你选择了他2、 leal ( ,%ecx, 4), %eax3、 movl %ecx, %eax4、 movl %edx, %eax 1题号: 40分数: 得 10 分,满分 10 分问题: 以下选项中,不属于指令集体系结构名称的是( )你的答案:1、 ARM2、 MIPS3、 UNIX :你选择了他4、 IA-32题号: 41分数: 得 10 分,满分 10 分问题: 以下关于循环结构语句的机器级代码表示的叙述中,错误的是( )。你的答案:1、 不一定包含无条件转移指令2、 循环体内执行的指令不包含条件转移指令 :你选择了他3、 一定至少包含-一 条条件转移指令4、 循环结束条件通常用一条比较指令CMP来实现题号: 42分数: 得 10 分,满分 10 分问题: IA-32中指令“popl %ebp"的功能是( )。你的答案:1、 R[esp]←R[esp]+4, R[ebp] ←M[R[esp]]2、 R[ebp]←M[R[esp]], R[esp] ←R[esp]+4 :你选择了他3、 R[esp]←R[esp]-4, R[ebp] ←M[R[esp]]4、 R[ebp]←M[R[esp]], R[esp] ←R[esp]-4题号: 43分数: 得 0 分,满分 10 分问题: 以下关于switch语句的机器级代码表示的叙述中,错误的是( )。你的答案:1、 当case中出现的条件取值范围较小时,可以用跳转表的方式实现http://www.dingzhigongjiao.cn/q-215356.html2、 每个case至少对应一条条件转移指令,因而一定会包含多条条件转移指令 1 猜测是如果只有一个case 就只有一个了 只是猜测3、 每个case对应的一段代码结束后,都会有一条无条件转移指令4、 可以用连续的if ~ else ~ if ~ else ~ if……语句对应的机器代码来实现switch语句 :你选择了他题号: 44分数: 得 10 分,满分 10 分问题: 假定int型数组a的首址在ECX中,i在EDX中,则“*(a+i)送EAX"所对应的汇编指令是( )。你的答案:1、 leal (%edx, %ecx, 4), %eax2、 leal (%ecx, %edx, 4),%eax3、 movl (%ecx, %edx, 4), %eax :你选择了他4、 movl (%edx, %ecx, 4), %eax题号: 45分数: 得 10 分,满分 10 分问题: 以下有关IA-32的过程调用方式的叙述中,错误的是( )。你的答案:1、 入口参数使用栈(stack)传递,即所传递的实参被分配在栈中2、 返回地址是CALL指令下一条指令的地址,被保存在栈中3、 EBX、ESI、 EDI、 EBP和ESP都是被调用者保存寄存器 :你选择了他4、 EAX、ECX和EDX都是调用者保存寄存器}

我要回帖

更多关于 基本指令 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信