微机原理及应用答CH03(汇编语言程序设计).doc

微机原理及应用答CH03(汇编语言程序设计).doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CH03 汇编语言程序设计 习题与思考题 1.下列语句在存储器中分别为变量分配多少字节空间?并画出存储空间的分配图。 VAR1 DB 10,2 VAR2 DW 5 DUP(?),0 VAR3 DB ‘HOW ARE YOU?’,3 DUP(1,2) VAR4 DD -1,1,0 解答:字节空间----VAR1:2;VAR2:12;VAR3:20;VAR4:12。 存储空间的分配图: DS:0000 0A 02 00 00 00 00 00 00—00 00 00 00 00 00 48 4F 0010 57 20 20 41 52 45 20 20—59 4F 55 3F 01 02 01 02 0020 01 02 FF FF FF FF 01 00—00 00 00 00 00 00 2.假定VAR1 和VAR2 为字变量,LAB 为标号,试指出下列指令的错误之处。 (1)ADD VAR1,VAR2 (2)SUB AL,VAR1 (3)JMP LAB[CX] (4)JNZ VAR1 (5) MOV [1000H],100 (6)SHL AL, 4 解答:(1)两个操作数中至少有一个为寄存器; (2)AL 为字节,VAR1 为字变量,不匹配; (3)[]中不能用CX,LAB 为标号,非变量; (4)转向地址应为标号,不能是变量; (5)目的操作数的类型不确定; (6)SHL 指令中,当所移位数超过1 时,必须用CL 或CX 来取代所移位数。 3.对于下面的符号定义,指出下列指令的错误。 A1 DB ? A2 DB 10 K1 EQU 1024 (1) MOV K1,AX (2)MOV A1,AX (3)CMP A1,A2 (4)K1 EQU 2048 解答:(1)K1 为常量,不能用MOV 指令赋值; (2)A1 为字节,AX 为字变量,不匹配; (3)A1 未定义,无法做比较指令; (4)K1 重新赋值前,必须用PURGE 释放。 4.数据定义语句如下所示: FIRST DB 90H,5FH,6EH,69H SECOND DB 5 DUP(?) THIRD DB 5 DUP(?) 自FIRST 单元开始存放的是一个四字节的十六进制数(低位字节在前),要求: 编一段程序将这个数左移两位后存放到自SECOND 开始的单元,右移两位后存放到自 THIRD 开始的单元。(注意保留移出部分) 解答: DATA SEGMENT FIRST DB 90H,5FH,6EH,69H SECOND DB 5 DUP(?) THIRD DB 5 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA SI,FIRST LEA DI,SECOND MOV CX,2 CLC ;左移2 位 MOV AX,[SI];AX=5F90H 为低十六位数据 INC SI INC SI MOV DX,[SI];DX=696EH 为高十六位数据 PUSH DX;保存原有的高十六位数据 PUSH AX;保存原有的低十六位数据 ROL DX,CL;将高位数据不带进位循环左移两位,即高2 位数据在DL 的低2 位 AND DL,03H;让DL 中仅保存移出的高2 位数据 MOV [DI+4] ,DL;将移出的高2 位数据放入SECOND 中的最高单元中 ROL AX,CL;将低位数据不带进位循环左移两位,即AX 的高2 位在AL 的低2 位 AND AL,03H;让AL 中仅保存移出的AX 高2 位数据 MOV BL ,AL;将AL 中的数据放入BL 中保存 POP AX;弹出原有的低十六位数据 POP DX;弹出原有的高十六位数据 SHL DX,CL;将高位数据算术逻辑左移2 位 SHL AX,CL;将低位数据算术逻辑左移2 位 OR DL,BL;将AX 中移出的高2 位数据放入DX 的低2 位 MOV [DI] ,AX MOV [DI+2] ,DX ;右移2 位 LEA SI,FIRST LEA DI,THIRD MOV CX,2 CLC MOV AX,[SI];AX=5F90H 为低十六位数据 INC SI INC SI MOV DX,[SI];DX=696EH 为高十六位数据 PUSH DX;保存原有的高十六位数据PUSH AX;保存原有的低十六位数据 ROR AX,CL;将低位数据不带进位循环右移两位,即低2 位数据在AH 的高2 位 AND AH,0C0H;让AH 中仅保存移出的低2 位数据 PUSH CX MOV CX,6 SHR AH

您可能关注的文档

文档评论(0)

yasou511137 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档