77范文网 - 专业文章范例文档资料分享平台

微机原理补充习题(2)

来源:网络收集 时间:2019-08-17 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

解:8086没有给段寄存器直接置值的指令,应该通过寄存器辗转设置。 (5) MOV [DI],[SI]

解:存储器单元之间不可直接传送,即两个操作数不能同为内存操作数。 (6) MOV AL,[CX]

解:CX不可以作为间址寄存器,只能用BX、BP、SI、DI。 (7) MOV AL,[SI] [DI]

解: 基址加变址寻址时 ,基址寄存器只能用BX或BP,变址寄存器只能用SI或DI,这里源操作数寻址用[SI+DI]是错误的。 (8) ADD BX,DS

解:DS段寄存器不能当通用寄存器用,故不可以出现在ADD指令中。 (9) INC [BX]

解: [BX]寻址数据类型不明确,应加类型说明 BYTE PTR [BX] 或 WORD PTR [BX]。 (10) SHL AX

解:缺少一个操作数。正确格式应为SHL AX, 1或SHL AX, CL(1或CL为移位次数)。 (11) MOVSB [DI] ,[SI]

解:MOVSB后不能加操作数,正确格式应为MOVSB。 (12) MOV 1000H,AX

解:立即数不能用作原操作数。 (13) SHL AX,5

解:原操作数应为1或CL,不能是大于1的数。大于1的数应放置在 CL中。 (14) DEC AX,5

解:DEC是减1指令没有原操作数。 (15) AAA BX

解:AAA是调整指令没有操作数(操作数是隐含的AL或AX)。 2.设DS=1000H,SS=2000H,AX=1A2BH,BX=1200H,CX=339AH,BP=1200H, SP=1352H,SI=1354H,

(11350H)=0A5H,(11351H)=3CH,(11352H)=0FFH,(11353H)=26H,(11354H)=52H,(11355H)=0E7H,(126A4H)=9DH,(126A5H)=16H,(21350H)=88H,(21351H)=51H

下列各指令都在此环境下执行,在各小题的空格中填入相应各指令的执行结果 MOV AX,1352H 解:AX=1352H

(1) MOV AX,[1352H] 解:AX=26FFH

(2) MOV 0150H [BX],CH

解:(11350H)=33H, (11351H)=3CH (3) MOV AX,0150H [BP] 解:AX=5188H (4) POP AX

解:AX=(21352H), SP=1354H (5) ADD [SI],CX

解:(11354H)=0ECH, (11355H)=1AH, SF=0, ZF=0, PF=1, CF=1, OF=0 (6) SUB BH,0150H [BX] [SI]

解:BH=75H, SF= 0, ZF=0, PF=0, CF=1, OF=0 (7) INC BYTE PTR 0152H [BX]

解:(11352H)=00H, (11353H)=26H, CF=0 (8) INC WORD PTR 0152H [BX]

解:(11352H)=00H, (11353H)=27H, CF=0 (10) SAR BYTE PTR 0150H [BX],1 解:(11350H)=0D2H, CF=1, OF=0 (11)SAL BYTE PTR 0150H [BX],1

解:(11350H)=4AH, CF=1, OF=1

程序与程序设计题

一、程序分析题

1 .MOV AL,10 ADD AL,AL SHL AL,1 MOV BL,AL ADD AL,BL

问:AL= BL=

解: AL=50H(或80)BL=28H(或40) 2. MOV BX,00FFH AND BX,0FFFH OR BX,0F0FH XOR BX,00FFH

问:BX= 解:2. BX=0F00H

3. XOR AX,AX MOV BX,2 MOV CX,10 LP:ADD AX,BX ADD BX,2 LOOP LP HLT

(1)该程序的功能是什么?

(2)程序执行后,AX= BX= CX= 解:(1)求2~20间的偶数和。(完成累加求和,即求:2+4+6+8+10+12+14+16+18+20)。 (2)AX=110,BX=22,CX=0 4.设DS=1000H,有如下数据段: DATA SEGMENT

ORG 10011

Xl DW 11H,22H,33H X2 DB 33H,44H,55H Y1 EQU 4321H Y2 EQU $- X2 X3 DB 88H,99H DATA ENDS

(1)该数据段共占用多少字节的存储单元? (2) Y1和Y2的值为多少?X3的值是多少? 解:(1)该数据段共占用11个字节

(2)Yl =4321H,Y2=3,X3=109H这里X3是用DB定义的,它是变量名。它的偏移地址为109H。Y1和Y2是由EQU定义的,它们是符号名,是常量。

5.下列程序段执行后,寄存器AX、BX和CX的值各为多少? ORG 1200H DA1 DW 100 ┆

MOV AX,DA1

MOV BX,0FFSET DA1

MOV CL,BYTE PTR DA1+1 MOV CH,TYPE DA1 HLT

解: AX=0064H BX=1200H CX=6400H

6.有数据段如下:

DATA SEGMENT ORG 1200H

BUF DB 5,6,‘78’ X1 DW 1,37H,46H Y1 EQU X1-BUF DATA ENDS

(1)该程序段占有的存储单元字节数是多少? (2)Y1的值是多少? 解:(1)占10个字节单元 (2)Y1=2

二、程序填空题

1. AX中有一个无符号数,若其值小于100,就加100;若其值大于等于100,就减50,但计算结果仍保存在AX中。在下面程序段每一空白处填上一条适当指令,以实现其功能。

CMP AX,100 SUB AX,50 PP:ADD AX,100 DONE:HLT 解:第一空白处填JC PP 第二空白处填JMP DONE

2.下面程序段判断A单元的值,并根据其值是负数、0或正数,分别将0FFH,00H,01H送入AL中。在空白处填入适当指令。

MOV AL,A CMP AL,0 JZ SYM

MOV AL,OFFH JMP DONE

SYM:MOV AL,1 DONE:HLT

解:第一个空填JZ DONE,因为程序已经给AL赋值,若AL等于0的话,AL中放的结果值也为0,所以转DONE即可。第二个空应填TEST AL,80H,因为其下面一条指令是JE SYM,其上一条指令应能影响ZF标志位,所以使用测试指令;即为0时(正数时)转SYM,给AL赋1。为非零时,即为负数时AL赋OFFH。

所以答案为:JZ DONE或JE DONE

TEST AL,80H或AND AL,80H 3.对于符号函数

?1当X〉0 ??Y??0当X?0??1当X〈0?? 请在下面程序段中每一空白处填上一条适当指令,实现符号函数功能。

MOV AL,X CMP AL,0 MOV Y,1 AA:JL BB

MOV Y,0

BB:MOV Y,0FFH DONE:HLT

解:第一空处填:JLE AA 第二空处填:JMP DONE 第三空处填:JMP DONE

三、编制程序

1.写出完成下列功能的程序段:

(1) 在数据段中,字变量DAT1有两个数据:1122H和3344H,字变量DAT2有两个数据:5566H和7788H,字变量DAT3为两个空单元。

(2)将DAT1的第二个字数据传送到AX。

(3) 将AX内容与DAT1的第一个字数据相减,将其差存人到DAT3的第一个字单元中。

(4)将DAT2中的第一个字送AX,并与DAT2中第二个字相加,其和存于DAT2的第一个字单元中。 (5) 将DAT2中的字单元数据除以DAT3第一个字单元中的数据,其商存于DAT3的第二个字单元中。

解: DATA SEGMENT

DAT1 DW 1122H,3344H DAT2 DW 5566H,7788H DAT3 DW ?,?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START;MOV AX,DATA MOV DS,AX

MOV AX,DAT1+2 SUB AX,DAT1 MOV DAT3,AX MOV AX,DAT2 ADD AX,DAT2+2 MOV DAT2,AX CWD

IDIV DAT3

MOV DAT3十2,AX MOV AH,4CH INT 21H CODE ENDS

END START

2.在DAT和DAT1两个字节变量单元中有两个十进制数的ASCII码,编程实现将这两个ASCII码转换为两个BCD码,并以压缩形式存放在REST字节变量单元中。

解:MOV AL,DAT

SUB AL,30H ;将ASCⅡ码转为BCD码 MOV CL,4

SHL AL,CL ;将BCD码放在AL高四位中 MOV BL,DAT1

SUB BL,30H ;将DAT1中的ASCⅡ码转为BCD码 OR AL,BL ;将两个BCD码合并在AL寄存器中 MOV REST,AL ;将压缩形式的BCD码存入REST中 HLT

3.在DAT单元内有一个带符号的数X,编一程序段,根据X的情况进行如下处理: 若X为正奇数,则将X与BUF单元内容相加; 若X为正偶数,则将X与BUF单元内容相‘与’;

若X为负奇数,则将X与BUF单元内容相‘或’; 若X为负偶数,则将X与BUF单元内容相‘异或’。 解:这是一个多分支结构程序,要对正负数判断,还要对奇偶数进行判断。正负数判断看最高位是否为‘1’,为‘1’是负数,否则为正数。奇偶判断是对D0位进行判断,若为‘1’,则为奇数,否则为偶数。

MOV AL,DAT AND AL,DAT

JNS POSI ;若为正数转POS1 TEST AL,01H ;测试负数的奇偶性 JZ M ;若为负偶数转M

OR AL,BUF ;若为负奇数进行‘或’运算 JMP DONE

M:XOR AL,BUF ;负偶数进行‘异或’运算 JMP DONE

POSI:TEST AL,01H ;判断正数的奇偶性 JZ N ;为正偶数,转N

ADD AL,BUF ;为正奇数进行‘加’运算 JMP DONE

N:AND AL,BUF ;正偶数进行‘与’运算 DONE:MOV BUF,AL

HLT

4.从NUMB单元起有100个数,其值在0一100之间。试编程序实现以下数据统计: (1)统计大于60小于100的数据个数,统计结果存于C0单元。 (2)统计等于100的数据个数,统计结果存于C0+1单元。 (3)统计等于0的数据个数,统计结果存于C0十2单元。

(4)当小于60的数等于10个时,结束统计,同时置C0单元为0FFH。

解:这是一个典型的多分支带循环的问题。应首先确定算法流程。其流程图和编程如下: MOV CX,0064H ;长度送CX

LEA BX,NUMB ;100个数的首地址送BX MOV AX,0 ;清AH,AL

MOV CO,AX ;清C0,C0+1单元 MOV [CO+2],AX ;清C0+2,C+3单元 LP:MOV AL,[BX] ;取数

CMP AL,100 ;与100比较

JZ L100 ;若等于100,转L100 CMP AL,60;

JNC L60 ;若AL)=60,转L6。 INC AH ;AL<60,计数器加1 CMP AH,10 ;<60为10个时 JZ DONE1 ;转DONE1执行 OR AL,AL;

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库微机原理补充习题(2)在线全文阅读。

微机原理补充习题(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/681244.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: