微机原理习题解答:5

更新时间:2023-05-16 03:35:17 阅读: 评论:0

习题五
1.汇编程序和汇编语言源程序有什么区别?两者的作用是什么?
答:汇编程序是对汇编源程序进行编译的系统程序;汇编源程序是编程人员利用汇编语言为解决某些问题而编写的程序。汇编程序用来对汇编源程序进行编译,从而产生目标代码的;而汇编源程序是用来执行程序动作的语句。
2.汇编语言源程序的语句有哪几种?各自的作用是什么?
答:汇编语言源程序是由指令语句、伪指令语句、宏指令语句组成。
指令语句:产生目标代码,是CPU可以执行的能够完成特定功能的语句。
伪指令语句:在汇编程序对源程序汇编期间由汇编程序处理的操作,它可以完成如处理器选择、定义数据、分配存储区、指示程序结束等功能,但不产生目标代码。
宏指令语句:宏指令语句的目的在于简化汇编语言源程序的书写,不能缩小目标代码文件。
3.标号和变量都有什么属性?各属性的作用是什么?
答:有段属性、偏移地址属性和类型属性。
① 段属性:段属性定义了标号和变量的段起始地址,其值是在某一段寄存器中。
② 偏移地址属性:该属性表示标号和变量相距段起始地址的字节数,是一个16位无符号数。
③ 类型属性:对于标号而言:用于指出该标号是在本段内引用还是在其它段中引用。标号的类型有NEAR(段内引用)和FAR(段间引用)两种;对变量而言:其类型属性由定义变量的伪指令DB(定义字节型)、DW(定义字型)、DD(定义双字型)等确定。
4.试叙述汇编语言源程序的上机过程。
答:分四步进行 ① 编辑、②汇编、③ 连接、 ④ 调试。
编辑:用编辑程序(例如EDIT.COM)建立扩展名为.ASM的汇编语言源程序文件。
汇编:用汇编程序(例如MASM.EXE)将汇编语言源程序文件汇编成目标程序文件,其扩展名为.OBJ。如果在汇编过程中出现语法错误,根据错误信息提示(如错误位置、错误类
型、错误说明),用编辑软件重新调入源程序文件进行修改,直至没有出现语法错误,再进行连接程序。
连接:用连接程序(例如LINK.EXE)把目标程序文件转化成可执行文件,其扩展名为.EXE。
调试:用调试程(例如 DEBUG.EXE)序对可执行文件进行调试,直到无错误为止。
此时的可执行文件在DOS命令下直接执行。
5.已知数据段DATA从存储器02000H单元开始,DATA段的定义如下:
      DATA  SEGMENT
mingmen          VAR1  DB  2  DUP(0,1,?)
          VAR2  DW  50  DUP(?)
          VAR3  DB  10  DUP(0,1,2 DUP(3),4)
      DATA  ENDS
试求出三个变量经SEG、OFFSET、TYPE、LENGTH、SIZE运算的结果。
答:运算结果如下表所示:
回送符
变量
SEG
OFFSET
TYPE
LENGTH
SIZE
VAR1
0200H
0000H
belief1H
2H
2H
VAR2
0200H
0006H
2H
32H
64H
VAR3
0200H
006AH
英语四级分值
1H
0AH
0AH
6.已知数据段定义如下,试采用图示说明各变量在内存的分配情况以及数据的预置情况。
      DATA  SEGMENT
        A1  DB  50,100,2 DUP(0,1)
        A2  DB  2 DUP(2,3 DUP(?),10H)
        A3  DB  ‘happy new year!’
        A4  DW  0,2000H
        A5  DW  ?,‘AB’
      DATA  ENDS
答:
7.试采用图示说明各变量在内存的分配情况以及数据的预置情况。
      DATA  SEGMENT
        ORG 0100H
        B1  DB ?
        B2  DW 100
watchguard
        B3  DW  2 DUP (0)
        COUNT  EQU 5
        B4  DB  COUNT DUP(0,1)
        B5  DW  ‘12’,‘34’,‘56’
      DATA  ENDS
答:内存的分配情况以及数据的预置情况见右图
8.已知变量VAR1、VAR2、VAR3定义如下,试分析下面的指令是否正确,若有错误,请进行改正。
    DATA  SEGMENT
      VAR1  DB  ?
      VAR2  DB  10
      VAR3  EQU  100
    DATA  ENDS
(1) MOV  VAR1,AX
(2) MOV  VAR3,AX
(3) MOV  BX,VAR1
        MOV  [BX],10
(4) CMP  VAR1,VAR2
(5) VAR3  EQU  50
答:(1)类型不匹配,该为:MOV  VAR1AL
  (2)立即数不能作为目的操作数,该为:MOV  AX,VAR3
  (3)第一句类型不匹配,改为:MOV  BL,VAR1
        第二句未指明存储器操作数的类型,改为:MOV  BYTE PTR[BX],10
  朋友英文(4)两个存储器操作数之间不能直接作比较,改为:
MOV  AL,VAR1
        CMP  AL,VAR2
  5)符号VAR3 已被定义,不能重复定义,应去掉。
9.假设VAR1和VAR2为字变量,LAB为标号,试指出下面指令的错误之处,并加以改正。
(1)ADD  VAR1,VAR2
答:两存储器操作数之间不能直接相加,改为:MOV  AX,VAR1
                                          ADD  AX,VAR2
(2)SUB  AL,VAR2
答:两操作数类型不匹配,改为:SUB  AX,VAR2
(3)MOV  CL,VAR1
答:两操作数类型不匹配,改为:MOV CX,VAR1
(4)JMP  LAB[SI]
答:相对寄存器寻址,相对位移量不能为标号,因为数据值。改为:JMP  5[SI]
(5)JNZ  VAR1
答:条件转移指令转移的目标地址,只能是标号或8位位移量。改为:JNZ  LAB
10.试说明下面指令中哪些需要进行PTR说明。
VAR1  DB  10H,100
VAR2  DW  1000
平方英尺(1)MOV  AL,VAR1
(2)MOV  DH,[BX]
(3)ADD [BX],2
(4)MOV  CL,VAR2
(5)SUB  AL,VAR1+1
答:(3)、(4)条指令需要进行PTR说明
11.选择题
(1)在顺序结构的流程图中,不包含有( C   )。
A)起始框      B)终止框        C)判断框          D)处理框
(2)设AL=0A8H,CX=2,CF=1,执行RCL  AL,CL指令后,AL=(无正确选项)。
A)51H          B)46H          C)47H            D)0C5H
注:正确的结果为:AL0A3H
(3)下述指令的执行结果是(  C   )
MOV  AL,0FFH
XOR  AL,3FH
A)AL=40H      B)AL=20H      C)AL=0C0H      D)AL=0E0H
12.在AX和DX中存有一个32位带符号数(DX中存放高16位),试编写程序求出它的相反数。
答:程序设计如下: 
CODE  SEGMENT
                    ASSUME CSCODE
STARTMOV CX0
CLC
SBB CXAX
MOV AXCX
MOV CX0
SBB CXDX
MOV DXCX
MOV AH4CH
INT 21H
CODE ENDS
END  START
quotations
13.编程实现求S=(X2+Y2/ Z的值,并将结果放入RESULT单元。(设:X、Y、Z均为字节数,且Z为无符号数)
    答:程序设计如下:
      DATA SEGMENT
            X DB 20H
            Y DB 35H
            Z DBonaccountof 12H恬不知耻
      RESULT DWblindness

本文发布于:2023-05-16 03:35:17,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/649069.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:源程序   指令   进行   属性   语句   变量
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图