为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 汇编语言习题答案

汇编语言习题答案

2010-06-10 5页 doc 39KB 95阅读

用户头像

is_855564

暂无简介

举报
汇编语言习题答案第一章: 5.在ASCⅡ表,字符“0”~“9”之间编码规律是什么?大写字母和小写字母之间的编码规律是什么? 答:在ASCⅡ表中,字符“0”~“9”的编码是连续的,且“0”的ASCⅡ编码为30H。英文字母在ASCⅡ码中的编码也是连续的,大写字母的编码小于小写字母的编码,且大小写字母的编码之间相差20H. 第2章: 5.IP/EIP寄存器的用途是什么?它是“计算机组成原理”课中的什么概念在CPU中的具体体现? 答:IP和EIP分别是16位和32位的寄存器,它们存放着下次将要执行的指令在代码段的偏移量。它们是“计算机组成原理...
汇编语言习题答案
第一章: 5.在ASCⅡ,字符“0”~“9”之间编码规律是什么?大写字母和小写字母之间的编码规律是什么? 答:在ASCⅡ表中,字符“0”~“9”的编码是连续的,且“0”的ASCⅡ编码为30H。英文字母在ASCⅡ码中的编码也是连续的,大写字母的编码小于小写字母的编码,且大小写字母的编码之间相差20H. 第2章: 5.IP/EIP寄存器的用途是什么?它是“计算机组成原理”课中的什么概念在CPU中的具体体现? 答:IP和EIP分别是16位和32位的寄存器,它们存放着下次将要执行的指令在代码段的偏移量。它们是“计算机组成原理”中的指令“下条指令”地址的指令地址寄存器在CPU中的具体体现。 9.假设用以下寄存器组合来访问存储单元,试分别求出它们所访问单元的物理地址。 答:1。DS=1000H和DI=2000H; 2.DS=2000H和SI=1002H; 3.SS=2300H和BP=3200H; 4.DS=0A000H和BX=1000H; 5.SS=2900H和SP=3A00H。 第3章: 4.判断下列各种操作数的寻址方式的正确性,正确的指出其寻址方式,错误的说明其错误原因: 1.[AX] 错误,AX不能用于访问内存单元。 2.[EAX] 正确,32位地址的寻址方式。 3.BP 正确,寄存器寻址方式。 4.[SI+DI] 错误,两个变址寄存器SI和DI不能同时用于内存单元的有效地址。 5.DS 正确,寄存器寻址方式。 6.BH 正确,寄存器寻址方式。 7.[BX+BP+32] 错误,两基址寄存器BX和BP不能同时用于内存单元的有效地址。 8.[BL+44] 错误,寄存器BL不能用于表示内存单元的有效地址。 9.[CX+90] 错误,寄存器CX不能用于表示内存单元有效地址。 10.EDX 正确,寄存器寻址方式。 11.BX+90H 错误,无此寻址方式或非法的表达式。 12.[DX] 错误,寄存器DX不能用于表示内存单元的有效地址。 13.SI[100H] 错误,书写方式不正确。 14.[BX*4] 错误,16位寄存器不能乘比例因子。 15.[EAX+EBX*6] 错误,32位地址寻址方式的比例因子错。 16.[DX+90H] 错误,寄存器DX不能用于表示内存单元的有效地址。 第5章: 2.简述指令MOV BX,1234H,MOV BX,[1234]和MOV BX, OFFSET[1234H]的功能和它们之间的区别? 答: 1.MOV BX,1234H的作用是将通用寄存器BX的当前值设为1234H; 2.MOV BX,[1234]的作用是取出内存地址1234H的当前值赋予通用寄存器BX; 3.MOV BX, OFFSET [1234H]的作用是取内存地址1234H的偏移量,而地址[1234H]的偏移量就是1234H,所以,指令的执行效果就是把1234H赋予寄存器BX。 3.简述指令MOV BX,DATA和MOV BX, OFFSET DATA 之间的区别。 答:1.MOV BX, DATA的作用是将DATA 的值赋予通用寄存器BX。 2.MOV BX, OFFSET DATA 的作用是将DATA的偏移地址赋予寄存器BX。 第6章: 6.假设有3个无符号字存放在以BUFFER 为开始的缓冲区中,编写一个程序把它们从低到高排序。 答: buffer dw 3 dup (?) mov ax , buffer mov bx , buffer[2] mov cx , buffer[4] cmp ax , bx jbe next1 xchg ax,bx next1: cmp bx, cx jbe next2 xchg bx,cx next2: cmp ax, bx jbe next3 xchg ax, bx next3: mov buffer , ax mov buffer[2] , bx mov buffer[4] , cx 12.假设从变量BUFF开始存放了200个字,编写一个程序统计出其整数,0和负数的个数,并把它们分别存入N1,N2和N3中。 答: Buff dw 200 dup(?) N1 dw 0 N2 dw 0 N3 dw 0 … Mov cx , 200 Mov si ,0 Next4: Mov ax , word ptr buff [si] Add si , 2 Cmp ax, 0 Je next1 Jg next2 Mov bx, offset n3 Jnc word ptr [bx] Jmp next3 Next1: Mov bx, offset n2 Inc word prt[bx] Jmp next3 Next2: Mov bx , offset n1 Inc word prt [bx] Next3: Loop next4 第7章: 3.简述调用指令CALL和转移指令JMP之间的主要区别。 答:CALL指令是一种特殊的转移操作。当调用一个子程序时,程序的执行顺序被改变,CPU将转而执行子程序中的指令序列,在这方面,CALL指令含有转移指令的功能。JMP转移指令是一种“一去不复返”的操作,而当子程序执行结束后,还要求CPU能转而执行CALL指令后续的指令,它是一种“有去有回”的操作。 4.简述段内和段间子程序调用指令CALL的主要区别。 答:子程序的调用指令分为近(NEAR)调用和远(FAR)调用。近调用即段内子程序调用,远调用即段间子程序调用。 如果被调用子程序的属性是近的,那么,CALL指令将产生一个近调用,它把该指令之后地址的偏移量(用一个字来表示)压栈,把被调用子程序入口地址的偏移量送给指令指针寄存器IP即可实现执行程序的转移。 如果被调用子程序的属性是远的,那么,CALL指令将产生一个远调用。这时,调用指令不仅要把该指令之后地址的偏移量压进栈,而且也要把段寄存器CS的值压进栈。在此之后,再把被调用子程序入口地址的偏移量和段值分别送给IP和CS,这样完成了子程序的远调用操作。 13.调用子程序指令CALL和调用伪指令INVOKE的主要区别是什么? 答:INVOKE伪指令是调用基于堆栈的子程序方法,它把所有参数压栈,子程序结束时,又把参数自动弹出堆栈。在参数传递时,汇编程序将根据子程序的原型进行数据类型检查。若需要进行参数类型转换的话,汇编程序则会自动生成一段代码来满足其数据类型转换的要求。而CALL指令只负责调用子程序,并不对参数进行处理。 21.用WHILE和.ENDW语句实现19,20的功能。 答:将19题用.WHILE和.ENDW语句实现: Search proc .while byte ptr[si]!=0 .break . if [si]= = a1 Inc si .endw .if [si]= = a1 Stc .else Clc .endif Ret Search endp 将20题用.WHILE和.ENDW语句实现: Fill proc .while cx!= 0 Mov byte ptr[si] , 0 Inc si Dec cx .endw Ret Fill endp 第八章: 1.简述中断和子程序调用之间的主要区别。 答:中断和子程序调用在实现方面的主要差异: 1.子程序调用一定是程序员在编写源程序时事先安排好的,是可知的,而中断是由中断源根据自身的需要产生的,是不可预见的(用指令INT引起的中断除外)。 2.子程序调用是用CALL指令来实现的,但没有调用中断的指令,只有发出中断请求的事件(指令INT是发出内部中断信号,而不要理解为调用中断服务程序)。 3.子程序的返回指令是RET,而中断服务程序的返回指令是IRET/IRETD; 4.在通常情况下,子程序是由系统的开放者编写的,而中断服务程序是由系统软件者编写的。 2.为什么要区分IRET指令与RET指令? 答:响应中断的过程是先保护现场和返回地址的,然后再进入中断响应程序的运行。现场包括通用寄存器和标志位寄存器的内容,而调用子程序一般有用户自己来保护特定的寄存器,通常不保护标志位寄存器。由于保护内容的不同,在返回时,从堆栈中弹出的内容也就不同。所以为了区别返回指令的功能,需要分别设置中断返回指令IRET指令和子程序返回RET指令。 3.编写一个子程序,它显示以0结尾的字符串。子程序的入口参数DS:DX为待输出字符串的首地址。 答: Display proc uses ax bx ;子句USES在MASM6。X中有效, next: Mov bx ,dx Mov d1 ,byte prt [bx] Cmp d1 , 0 Je finish Mov ah ,2 Int 21h Inc bx Jmp next Finish : Ret Dispiay endp
/
本文档为【汇编语言习题答案】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索