加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

【习题】前三章练习题1

(2011-11-04 14:52:54)
标签:

杂谈

分类: 第3章指令系统与寻址方式

1 那些寄存器可以用来指示存储器地址?

 

2 请将下列左边的项和右边的解释联系起来(把所选字母放在括号中):

  (1) CPU ( )           A.保存当前栈顶地址的寄存器。

  (2) 存储器 ( )        B.指示下一条要执行的指令的地址。

  (3) 堆栈 ( )          C.存储程序、数据等信息的记忆装置,微机有RAM和ROM两种。

  (4) IP ( )            D.以后进先出方式工作的存储空间。

  (5) SP ( )            E.把汇编语言程序翻译成机器语言程序的系统程序。

  (6) 状态标志 ( )      F.唯一代表存储空间中每个字节单元的地址。

  (7) 控制标志 ( )      G.能被计算机直接识别的语言。

  (8) 段寄存器 ( )      H.用指令的助记符、符号地址、标号等符号书写程序的语言。

  (9) 物理地址 ( )      I.把若干个模块连接起来成为可执行文件的系统程序。

  (10) 汇编语言 ( )     J.保存各逻辑段的起始地址的寄存器,8086/8088机有四个:CS、DS、

SS、ES。

  (11) 机器语言 ( )     K.控制操作的标志,如DF位。

  (12) 汇编程序 ( )     L.记录指令操作结果的标志,共6位:OF、SF、ZF、AF、PF、CF。

  (13) 连接程序 ( )     M.分析、控制并执行指令的部件,由算术逻辑部件ALU和寄存器等

组成。

  (14) 指令 ( )         N.由汇编程序在汇编过程中执行的指令。

  (15) 伪指令 ( )       O.告诉CPU要执行的操作(一般还要指出操作数地址),在程序运行时

执行。

 

第3章习题

 

3.1 给定(BX)=637DH,(SI)=2A9BH,位移量X=7237H,试确定在以下各种寻址方式下的有效地址是什么?

  (1) 立即寻址

  (2) 直接寻址

  (3) 使用BX的寄存器寻址

  (4) 使用BX的间接寻址

  (5) 使用BX的变址寻址

  (6) 基址变址寻址

 

3.2 试根据以下要求写出相应的汇编语言指令

  (1) 把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器中。

  (2) 用寄存器BX和SI的基址变址寻址方式把存储器中的一个字节与AL寄存器的内容相加,并把结果送到AL寄存器中。

  (3) 用寄存器BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和(CX)相加,并把结果送回存储器中。

  (4) 用位移量为0524H的直接寻址方式把存储器中的一个字与数2A59H相加,并把结果送回存储单元中。

  (5) 把数0B5H与(AL)相加,并把结果送回AL中。

 

3.3 写出把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令。要求使用以下几种寻址方式:

  (1) 寄存器间接寻址

  (2) 变址寻址

  (3) 基址变址寻址

 

3.4 现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,试说明下列各条指令执行完后AX寄存器的内容。

   (1) MOV AX, 1200H

   (2) MOV AX, BX

   (3) MOV AX, [1200H]

   (4) MOV AX, [BX]

   (5) MOV AX, 1100H[BX]

   (6) MOV AX, [BX][SI]

   (7) MOV AX, 1100H[BX][SI]

 

3.8 假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据段中变量名VAL的偏移地址为0050H,试指出下列源操作数字段的寻址方式是什么?其物理地址值是多少?

  (1) MOV AX, 0ABH             (2) MOV AX, BX

  (3) MOV AX, [100H]           (4) MOV AX, VAL

  (5) MOV AX, [BX]             (6) MOV AX, ES:[BX]

  (7) MOV AX, [BP]             (8) MOV AX, [SI]

  (9) MOV AX, [BX+10]          (10) MOV AX, VAL[BX]

  (11) MOV AX, [BX][SI]        (12) MOV AX, VAL[BX][SI]

 

3.9 在ARRAY数组中依次存储了七个字数据,紧接着是名为ZERO的字单元,表示如下:

  ARRAY DW 23, 36, 2, 100, 32000, 54, 0

  ZERO DW ?

  (1) 如果BX包含数组ARRAY的初始地址,请编写指令将数据0传送给ZERO单元。

  (2) 如果BX包含数据0在数组中的位移量,请编写指令将数据0传送给ZERO单元。

 

3.10 如TABLE为数据段中0032单元的符号名,其中存放的内容为1234H,试问以下两条指令有什么区别?指令执行完后AX寄存器的内容是什么?

  MOV AX, TABLE

  LEA AX, TABLE

 

3.11 执行下列指令后AX寄存器中的内容是什么?

    TABLE DW 10, 20, 30, 40, 50 ;000AH, 0014H, 001EH, 0028H, 0032H

    ENTRY DW 3

   

    MOV BX, OFFSET TABLE

    ADD BX, ENTRY

    MOV AX, [BX]

 

3.12 下列ASCII码串(包括空格符)依次存储在起始地址为CSTRING的字节单元中:

    CSTRING DB ‘BASED ADDRESSING’

    请编写指令将字符串中的第1个和第7个字符传送给DX寄存器。

 

3.13 已知堆栈段寄存器SS的内容是0FFA0H,堆栈指针寄存器SP的内容是00B0H,先执行两条把8057H和0F79H分别进栈的PUSH指令,再执行一条POP指令。试画出堆栈区和SP的内容变化过程示意图(标出存储单元的物理地址)。

3.15 求出以下各十六进制数与十六进制数62A0H之和,并根据结果设置标志位SF、ZF、CF和OF的值。

    (1) 1234H    (2) 4321H       (3) CFA0H       (4) 9D60H

 

3.16 求出以下各十六进制数与十六进制数4AE0H的差值,并根据结果设置标志位SF、ZF、CF和OF的值。

    (1) 1234H (2) 5D90H (3) 9090H (4) EA04H

 

3.17 写出执行以下计算的指令序列,其中X、Y、Z、R、W均为存放16位带符号数单元的地址。

    (1) Z←W+(Z-X)

    (2) Z←W-(X+6)-(R+9)

    (3) Z←(W*X)/(Y+6),R←余数 

    (4) Z←((W-X)/5*Y)*2

 

3.18 已知程序段如下:

   MOV AX, 1234H

   MOV CL, 4

   ROL AX, CL

   DEC AX

   MOV CX, 4

   MUL CX

试问:

(1) 每条指令执行完后,AX寄存器的内容是什么?

(2) 每条指令执行完后,进位、符号和零标志的值是什么?

(3) 程序结束时,AX和DX的内容是什么?

 

3.20 变量DATAX和变量DATAY的定义如下:

   DATAX DW 0148H

         DW 2316H

   DATAY DW 0237H

         DW 4052H

  请按下列要求写出指令序列:

   (1) DATAX和DATAY两个字数据相加,和存放在DATAY中。

   (2) DATAX和DATAY两个双字数据相加,和存放在从DATAY开始的双字单元中。

   (3) DATAX和DATAY两个字数据相乘。 

   (4) DATAX除以23

 

3.21 写出对存放在DX和AX中的双字长数求补的指令序列。

 

3.22 试编写一程序求出双字长数的绝对值。双字长数在A和A+2单元中,结果存放在B和B+2单元中。

 

3.23 假设(BX)=0E3H,变量VALUE中存放的内容为79H,确定下列各条指令单独执行后的结果。

   (1) XOR BX, VALUE

   (2) AND BX, VALUE

   (3) OR BX, VALUE

   (4) XOR BX, 0FFH

   (5) AND BX, 0

   (6) TEST BX, 01H

 

3.24 试写出执行下列指令序列后BX寄存器的内容。执行前(BX)=6D16H。

    MOV CL, 7

    SHR BX, CL

 

3.25 试用移位指令把十进制数+53和-49分别乘以2。它们应该用什么指令?得到的结果是什么?如果要除以2呢?

 

3.26 试分析下面的程序段完成什么功能?

   MOV CL, 04

   SHL DX, CL

   MOV BL, AH

   SHL AX, CL

   SHR BL, CL

   OR DL, BL

 

3.27 假定(DX)=0B9H,(CL)=3,(CF)=1,确定下列各条指令单独执行后DX中的值。

  (1) SHR DX, 1

  (2) SAR DX, CL

  (3) SHL DX, CL

  (4) SHL DL, 1

  (5) ROR DX, CL

  (6) ROL DL, CL

  (7) SAL DH, 1

  (8) RCL DX, CL

  (4) RCR DL, 1

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有