华北电力大学微型计算机,2017年华北电力大学(北京)控制与计算机工程学院843微机原理及应用[专业硕士]考研强化模拟题...

一、解答题

1. 阅读下面的程序,指明在该程序执行完后,Ml 、M2、M3中存放的是什么?各为多少?

【答案】程序的功能是统计在内存TABLE 开始存放的10个有符号的正数、负数和0的个数,正数的个数放在M3中,负数的个数放在M2中,0的个数放在Ml 中。

原因在于,将要判断的数和0比较,如果JGE 成立,则转向G2标号处,再次判断JG ,成立则表示为正数,则转向G3标号处,将M3的内容加1,如果不成立则表示为0, 将Ml 的内容加1; 如果JGE 不成立,则表示为负数,将M2的内容加1。

程序执行完后。

2. 若8086执行SUBAH ,AL 后的结果是AH=85H, OF=1。问:

(1)执行前AH 和AL 内的数哪个大? (2)AH 存的是正数还是负数? 为什么? (3)结果AH=85H是否正确? 为什么?

【答案】(1)执行SUBAH ,AL 后的结果是AH=85H。

从OF=l,可知AH —AL 有溢出,只有两个异号的数相减才会溢出,故:

又因指令SUBAH , AL 执行后,AH=85H,结果为负,所以有:

第 2 页,共 51 页

从而

因此AH 存的是正数,AL 存的是负数。

所以AH 中的数大于AL 。

(2)只有两个异号的数相减才会溢出,而

(3)因为OF=l, 表明产生了溢出,因此结果AH=85H不正确。

3. 试设计一个数据段DSEG ,它的段基址从01000H 开始,定义下列字符变量或数据变量,并画出它们的 内存分配图。

(1)FIRST 为十六进制数的字变量4020H ; (2)SECOND 为二进制数的字节变量01011100B ; (3)THIRD 为十进制数的字节变量64; (4)STRING 为字符串变量ADDITION ; (5)ASCDATA 为 ASCII 数字变量“46782”; (6)TABL 为10个字的数字变量;

(7)REPDA TA 为数字0、2、3、0、6重复5次的字节变量; 【答案】根据题意设计的数据段DSEG 如下:

内存分配图如图所示,在内存中所有的数据都是二进制存放的,一般用十六进制表示。

第 3 页,共 51 页

图 内存分配示意图

4. 如果从存储器的10000H 地址开始分配段区,要求代码段占用4KB 空间,数据段占2KB 节空间、堆栈段占用512B 空间。按代码段、数据段和堆栈段的顺序连续分段,写出CS 、DS 、SS 各段寄存器内容是什么?

【答案】从存储器的10000H 地址开始分配,那么其实段基址为1000H , 所以CS=1000H; 代码段占4KB 字节,即4096B=1000H, 那么数据段起始地址为10000H+1000H=11000H,段基址为1100H , 即DS=1100H; 数据段占2KB ,即2048B=800H, 那么堆栈段的起始地址为11000H+800H=11800H,段基址为1180H , 即SS=1180H。

因此有CS=1000H, DS=1100H, SS=1180H。

5. 将下列十进制数变为8421BCD 码:(1)8609; (2)5254; (3)2730; (4)1998。

【答案】(1)(2)(3)(4)

6. 指出下列程序完成什么功能。

第 4 页,共 51 页

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值