微机原理第三章习题答案_第1页
微机原理第三章习题答案_第2页
微机原理第三章习题答案_第3页
微机原理第三章习题答案_第4页
微机原理第三章习题答案_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、10/10习题3答案 指出下列指令的错误原因.(1) AND AX,DL ;类型不匹配()ADD S, DX ;C不能作为目的操作数() MV AX, I ;IP不能作为指令的操作数(4) BPS, ;两个操作数不能同时为内存操作数(5) SUB BPI, S:D ;段超越前缀只能用在内存操作数之前(6) XH L, I ;没有SII这种操作数形式()GEA ;条件转移指令的操作数只能是标号(8)PUSHDL ;对堆栈不能进行字节操作2用一条指令将BX清0。(请给出3种方法)方法1:MO B,0 方法:SUBX,B 方法:AND BX, ;将和做与,可以将B清零方法4:R B, BX 写出实现

2、下列功能的指令序列。(1)判断X的值,若A等于0,则转到标号LAL处。(请写出3种方法)方法1:CM AX, 0 JZ AB ;如果 F ,说明X为0,因为CMP指令是做减法,但是不写回结果 ; 因此指令执行后A内容不会受到破坏方法2:ES ,0FHJ EL ;如果Z= 0,说明AX为,EST指令做与运算,可是不写回结果,只影响标志位. ; 和0与清零,和1与不变,所以和F做与的结果是X本身,但是此时标志位已; 经改变了,所以可以利用标志位来判断,但是X内容却没有受到任何破坏方法3:AFH;这个方法的原理和方法2其实是完全一致的ZLBL(2) 将L的高4位与低4位分别放入与AL的低位,并将与A

3、L的高位清MV AH, L ND AL,0FH ;AL高4位通过与清零,而低4位保持不变MOV C, 4 SHRA, L ;这两条指令通过逻辑右移将A的高位清零,因为SHR在右移后,高位补零(3) 若A和BX中的数恰好1个是奇数、个是偶数,则将奇数放入A,偶数放入X;否则,和B不变。TETX, 1 ;TEST做与运算,通过与来检测A的最低位 COTNUE ;如果Z =1,说明AX的最低位是,那么A中的数是偶数,就跳转,否则, ;说明中的是奇数,而中的是偶数,符合结果要求,不用动了CHGX, BX NTINU: 。分析下列指令序列完成什么功能。 CL, 4SHL D,MOV BL, AHSHLA

4、X,CHR BL, CLO DL, B答案:将X.AX中的3位数整体逻辑左移4位. 给出下列各条指令执行后AL以及CF、F、和Z的值.指令AFSFZF备注MOVAL, 1000/4XOR L164H0010XO后CF=0,其余据结果设置MO AL,10000MOV指令不影响标志位ICAL0001C不影响CF,其余据结果设置TA0FFH01T指令不影响标志位SL A, FEH010L据移出的位设F,据结果设S,一位移动,据移位前后最高位是否变化设置,有变化F 1,无变化F 0CMP L, 10FEH010CM指令根据结果设置6个标志位SBA, 7FH7F0000UB根据俄结果设置个标志位SHL

5、AL, 10FEH110解释同上6. 比较AX,BX和X中无符号数的大小,将最小数放入X中.答案:CMPAX, BXJC BB ; 如果A= BX,跳转XCGX, B ; 否则,交换和BX的值,将两者中的小值放到X中去:CM AX,X JC CC ; 如果AX C,跳转X AX, C ; 否则,交换A和C的值,将两者中的小值放到C中去CC:INT 20H ;返回DS. 变量定义伪指令与符号定义伪指令的主要作用是什么?答案:变量定义伪指令:主要用来为某种类型(比如字节型、字型)的内存单元的地址指定一个可以引用的名字标识。符号定义伪指令:其实就是定义一个宏替换常量,用定义的符号代表一个文本串或者一

6、个数值,在程序中遇到定义的符号时用相应的文本串或者数值去替换。 设有下列段定义:DEG SEMETDW, 3SE E给出下列两组指令序列分别执行后X的值。(1) V AX, SEG OV , A OV A, +1() MV A,SG X MO E,X V A,ES:X INC AX答案:(1)(A) = (2) (A) 备注:这两小段程序实现的功能是相同的,都是给子类型的变量X的值加1。第二段程序采用了段超越方式来寻址操作数。9。设有如下定义的数据段:DATA EMENTRG 100V1W2 DU(), +0BU1DB100DBFW1, ,2A9LNEQUF BUFVADWBUFDATNDS则

7、11中存放的字节数据为 (0 ), V+4中存放的字数据为( 4/7 ),V的内容为 (10 6A ),LEN的值为 (8 )。10. 在数据段定义的两个变量1和S2,要求设计一个完整的程序,将以S为首地址的50个字节依次传送到以为首地址的内存单元中。tagsegmts 25 dup (12) b 50 up (0)agensdsegmet ase cs :oesg, ds : atgsar: ax, datsgmovds, amoves, amov si, offsets1mov di, offss2 mv x,ep ovsov x, 4c00hint 2codegensndstrt1。从键

8、盘读入一个字符串(长度 5),统计其字母、数字及其他字符的个数。datasgemenbffdb;最大能容纳的字符个数countb (?);实际输入的字符个数bff2d 50dup(?);实际字符缓冲区leter b ;输入的字母个数iitsb 0;输入的数字个数otersdb 0;输入的其他字符的个数asgendssgementassumecs:oesg, s:codesgstart:movax, datsgmo ds, xmv d, offet buff1 ;为A号系统功能调用准备输入参数S:X指向输入缓冲区的首地址mov ah,0a i 2xo al, almovch,0mv l,con;

9、中存放循环次数movsi, ofe bff2 ;为lsb准备源地址,S:S指向实际的字符串地址ldhe:ods ;取一个数据到ALcmp al, A j x1cpal, Zcxi etters;将字符串中的大写字母个数统计到leer变量中jmpnexx1:c al, ac cmpl, jn x2in ltters;将字符串中的小写字母个数统计到etts变量中jnext2:cm al, c3cmp l,9n 3in dgts;将字符串中的数字字符统计到igits变量中m next3:r;统计其他字符个数net:loop cemv ax, 400hit 21hodeendsedstrt2.设计一个程序,求10个无符号数中的最大值。并将最大值存入变量MX中.datasgsgmntaryd 0, 12, 16, 4, 13, 90, 45, 32, 7,100;字节型数组madbdatasgensegsegetsume cs:cesg,d:tsgsart:mo , daasgmvds,axlea si, ry;数组首地址movx,1;数组元素个数cld;让地

温馨提示

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

评论

0/150

提交评论