汇编语言大题.doc_第1页
汇编语言大题.doc_第2页
汇编语言大题.doc_第3页
汇编语言大题.doc_第4页
汇编语言大题.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.6若机器字长为16位,其无符号数表示范围是多少?带符号数表示范围是多少?分别用十进制和十六进制表示。 答:无符号数:065535,0000HFFFFH;带符号数:-32768+32767,8000H7FFFH1.9 写出下列算式的二进制运算结果,标志位CF、SF、ZF、OF分别是什么值? 答:(1) 56+63=01110111B,CF=0,SF=0,ZF=0,OF=0(2) 83-45=00100110B,CF=1,SF=0,ZF=0,OF=0(3) -74+29=11010011B,CF=0,SF=1,ZF=0,OF=0(4) -9237=01111111B,CF=1,SF=0,ZF=0,OF=12.9 8086CPU的地址线为20根,寻址空间为1MB。最少可划分为多少个逻辑段?最多呢? 答:最少划分为16个逻辑段,最多划分为65536个逻辑段(每段16个字节)2,18 已知堆栈区大小为512字节,栈底单元的物理地址为15230H。将两个字入栈保存后,当前栈指针所指单元的物理地址是多少? 堆栈区中还能保存多少个数据? 答:当前栈指针所指单元的物理地址是1522CH。堆栈区中还能保存254个字。2.21 在DEBUG下,要将寄存器CX的值修改为100H,应该执行什么命令? 答:执行R CX,然后输入1002.22 在DEBUG下,怎样将数据段的0号4号字节单元填入a、b、c、d? 答:执行E DS:0 ?a? ?b? ?c? ?d?3.8 根据题目要求,写出相应的汇编指令:(1) 把BX寄存器的值传送给AX(2) 将立即数15送入CL寄存器(3) 用BX寄存器间接寻址方式将存储单元中的字与AX寄存器的值相加,结果在 AX中(4) 把AL中的字节写入用基址变址寻址的存储单元中(5) 用SI寄存器和位移量VALUE的寄存器相对寻址方式,从存储单元中读出一个字送入寄存器AX(6) 将AX中的数与偏移地址为2000H存储单元的数相减,结果在AX中 答:(1) MOV AX,BX (2) MOV CL,15 (3) ADD AX,BX(4) MOV BX+SI,AL (5) MOV AX,VALUESI (6) SUB AX,DS:2000H3.10 在数据寻址方式中,哪种寻址方式的操作数与指令一起存放在代码段? 答:立即寻址方式中操作数(立即数)和指令一起存放在代码段中。4.24 编程序。将键盘输入的小写字母变为大写字母显示在屏幕上。 答:.model small.codestart:mov ah,1 ;键盘输入int 21hsub al,20h ;变为大写mov dl,almov ah,2int 21hmov ah,4chint 21hend start4.25 X和Y都是字节型数据,编写将两数相加的结果显示出来的程序段。 答:.model small.datax db 12hy db 34h.codestart:mov ax,datamov ds,axmov al,xadd al,y ;结果为46Hmov ah,al ;AH=46Hand al,0fh ;AL=06Hmov cl,4rol ah,cl ;AH=64Hand ah,0fh ;AH=04Hadd ax,3030h ;AX=3436Hmov bx,axmov dl,bh ;显示4mov ah,2int 21hmov dl,bl ;显示6int 21hmov ah,4chint 21hend start4.26 编写程序,建立一个09的平方根表,查表可得某数的平方根。 答:data segmentx db 0.000,1.000,1.414,1.732,2.000db 2.236,2.449,2.646,2.828,3.000 ;建立字符表y db 5 dup(?) ;存放查到平方根u db 3 ;要查的数data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov al,u ;要查的数mov cl,5mul cl ;u*5=15(号单元开始)mov ah,0 mov bx,ax ;地址保存到bxmov si,0let1:mov al,xbx ;取出平方根数字mov ysi,al ;存入yinc siinc bxloop let1 ;循环取出5次mov ah,4chint 21hcode endsend start4.30 用简化的程序格式编程序,在屏幕的5行12列上显示红底白字的字符串“Come”(作业本,仿例4-7)5.11 已知(BX)=7890H,写出指令实现逻辑左移2位。请问哪个标志位改变了? 答:进位标志CF=15.15 写出将AL.4清零的指令。(AL中除第4位外的其他位保持不变)。 答:AND AL,11011111B5.29 字数组M中有10个数据,分类统计其中正数、负数、0的个数,分别存入POSI、NEGA、ZERO单元。 答:DATA1 SEGMENTM DW 21,-34,32,112,-324,0,76,0,48,50POSI DW ?NEGA DW ?ZERO DW ?DATA1 ENDSCODE1 SEGMENTASSUME CS: CODE1,DS:DATA1START: MOV AX,DATA1MOV DS,AXMOV CX,10LEA SI,MAGAIN: CMP WORD PTR SI,0JL LOWERJE EQUALINC POSIJMP LPP1 LOWER: INC NEGAJMP LPP1EQUAL: INC ZEROLPP1: ADD SI,2DEC CXJNZ AGAINMOV AH,4CHINT 21HCODE1 ENDSEND START6.11 写出下列程序段的执行结果。BUFF DB 10,22,14,6,31TOTAL DB ?MOV BX,OFFSET BUFFMOV CX,TOTAL-BUFFMOV AL,0AA1: ADD AL,BXINC BXLOOP AA1MOV TOTAL,AL 答:累加和TOTAL=836.12 分析下列程序段的功能。X DB 2,-3,15,0,9,4LEA BX,XMOV CX,6MOV AX,0AA2:MOV AL,BXCMP AL,0JNE NEXTINC AHNEXT:INC BXLOOP AA2 答:循环统计X中0的个数7.10 为什么要进行现场保护?怎样做现场保护? 答:(1)在编写子程序时要注意一个问题,如果主程序用到某些寄存器保护数据,转到子程序后,这些寄存器有可能被改写,或者某些指令必须用特定的寄存器,如乘法、除法指令必须用AX或AL,循环和移位指令必须用CX或CL;还有一些场合需要保存标志寄存器的内容等。因此在进入子程序时,先要把这些寄存器保存起来,称为现场保护。 (2)一般采用PUSH指令入栈保存的方法。在子程序返回主程序之前,将堆栈中保存的内容用POP指令弹出到相关的寄存器中,称为恢复现场。7.12 阅读下列子程序,解释该程序的功能。SUBR1 PROC NEARPUSH AXPUSH BXMOV AL,XADD AL,BLMOV Y,ALPOP BXPOP AXRETSUBR1 ENDP 答:功能:两个字节数相加。X和BL相加保存到Y。7.13 解释下列子程序的功能。SUBR2 PROC NEARMOV SI,0LET1: MOV AH,1INT 21HCMP AL,0DHJZ OUT1MOV KEYSI,ALINC SIJMP LET1OUT1: RETSUBR2 ENDP 答:功能:键盘输入的字符保存到KEY单元中,直到按回车为止。7.14 给出下列子程序的功能和执行结果。X DB 3AHSUBR3 PROC NEARMOV AL,XMOV BL,10MOV DX,0LETE : MOV AH,0DIV BLMOV DL,AHPUSH DXCMP AL,0JNZ LETERETSUBR3 ENDP 答:功能:将X单元中的十六进制3AH变为十进制入栈保存,AH中为余数。先将0008H入栈,再将0005H入栈,结果为58。8.7 请举例说明宏的变元是操作数和变元是操作码的用法。(P174 P175)8.9 在宏定义中可以使用标号吗?是否需要说明?8.16 分析下列宏定义,指出它的作用。EXM1 MACRO X1MOV AH,X1INT 21HENDM 答:宏的作用:DOS功能调用。功能号用哑元指出。8.17 解释下列宏的功能。EXM2 MACRO A,B,CMOV AX,AADD AX,BMOV C,AXENDM 答:宏的作用:两个操作数相加,结果保存在第3个数中。8.18 指出下列宏的作用。EXM3 MACRO C1MOV AH,2MOV DL,C1INT 21HENDM 答:宏的作用:DOS的2号显示功能。8.19 分析下列宏,指出它的作用。EXM4 MACRO A1,A2VALUE DW A1 DUP(A2)ENDM 答:宏的作用:定义VALUE数组,数组长度和初值由哑元指出。8.20 下列宏是一个分支程序,宏定义中缺少标号的处理。请添加,并指出宏的功能。EXM5 MACRO B1,B2MOV AL,B1SUB AL,B2JNS LETT1NEG ALLETT1:RETENDM 答:缺少标号定义LOCAL LETT1。宏的作用:两个哑元相减,结果为负则求补。9.2 硬件中断发生时,CPU怎样获知?CPU如何处理硬件中断?9.4 什么是中断向量?什么是中断向量表?80X86系统的中断向量表在哪儿? 答:(1)在每个中断类型相对应的中断处理子程序都有一个入口地址,即该中断子程序第1条指令的逻辑地址,该入口地址称为中断向量。 (2)用于保存所有的中断向量。 (3)P200图9-1*9.5 80X86系统可以有多少个中断类型?中断类型号是如何划分的? 答:(1)80X86系统提供了256个中断类型(可用1字节表示),类型号为0-FFH (2)中断类型代表了不同的中断源,而系统对中断类型的分配按照一定的规则划分,即0-4号为内;中断,5号为用户访问中断;8-0FH号为8259A中断控制器控制的8个硬件中断;10H-1AH号为BIOS基本输入/输出系统专用;1BH、1CH号为用户访问中断;20H-27H号为DOS中断;40-5F、67-77、BD-FF为硬盘参数、系统BASIC等。9.8 中断过程和子程序调用过程一样吗?有何异同?9.40(1)编写80H号中断处理程序。中断发生时,将BX寄存器内容以二进制形式显示。 (2)编写80H号中断处理程序。中断发生时,显示彩色的0-9十个数字。 答:(2)assume cs:codecodesegmentstart: movax,cs movds,ax movsi,offsetdisp movax,0 moves,ax movdi,200h movcx,offsetdisp_end-offsetdisp cld repmovsb; movax,0 moves,ax movwordptres:8

温馨提示

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

评论

0/150

提交评论