习题4参考答案
4.1 简述汇编语言与机器语言及高级语言间的区别?
参考答案:
要点:汇编语言与机器语言的区别:汇编语言采用符号表示,机器语言二进制表示。
汇编语言与高级语言的区别:汇编语言属于低级语言,每条指令与对应的机器指令间是一一对应关系,而高级语言接近于自然语言。
4.2 简述汇编语言程序的指令语句与伪指令语句在写法及功能上的不同?
参考答案:
要点:写法上的不同主要表现在第一部分上,一条指令的第一部分“标号”若需要,则在标号后面一定有冒号“:”,而伪指令语句的第一部分在“名字”后没有冒号“:”。
功能上的不同:每一条指令都有对应的机器指令,在程序运行过程中执行到每条指令时起作用;伪指令没有对应的机器指令,是在程序汇编时起作用。
4.3 汇编语言程序的标号有何规定?标号有哪三种属性?
参考答案:略
4.4 汇编语言程序的变量如何定义?变量有哪三种属性?
参考答案:略
4.5 汇编语言程序中,算术表达式、逻辑表达式、关系表达式各有什么含义?
参考答案:略
4.6 简述汇编语言程序上机的基本步骤和每步所进行的主要操作?
参考答案:略
4.7 设TABLE为数据段中0100H单元的符号名,其中存放的内容为FF00H,试分析以下两条指令分别执行后的结果,并指出它们之间的区别?
MOV AX,TABLE
MOV AX,OFFSET TABLE
参考答案:第一条指令传送的是TABLE所指单元的内容,AX结果为FF00H;第二条指令传送的是TABLE的偏移地址,AX结果为0100H。
4.8 设有如下的变量定义:
DATA SEGMENT
ARRAY DW 1000H,2000H,3000H,4000H,5000H
BUF DW ?
DATA ENDS
请分别完成以下操作汇编语言要什么基础
(1)用一条指令完成将ARRAY的偏移地址送BX
(2)用一条指令完成将ARRAY的第一字节单元内容送AL
(3)用一条指令完成将ARRAY定义的数据个数送CX
参考答案:
(1)LEA BX,ARRAY
(2)MOV AL,BYTE PTR ARRAY
(3)MOV CX,(BUF- ARRAY)/2
4.9 已知一数据段中的数据定义如下:
DATA SEGMENT
STR1 DB 1,2,3,4,5
STR2 DB ‘12345’
CONT EQU 20
NUMB DB 3 DUP(6)
NUMW DW 20H,-80H
TABLE DW 0
DATA ENDS
试根据以上数据段的定义,指出下列每小题指令中的错误或者用得不当的指令。
(1)MOV AX,STR1 ;STR1定义为字节类型,不能当字变量使用
(2)MOV BX,OFFSET NUMB
MOV [BX],’+’ ;’+’为立即数,[BX]存储器操作数应明确类型
(3)MOV DL,NUMW+2 ;NUMW为字类型,不能当字节变量使用
(4)MOV BX,OFFSET STR1
MOV DH,BX+3 ;源操作数“BX+3”不是正确表达式
(5)INC CONT ;INC中的操作数不能为立即数
(6)MOV STR1,STR2 ;MOV中的两个操作数不能同时为存储器操作数
(7)MOV AX,NUMW+2
MOV DX,0 ;此处不应用MOV指令,而应该用CWD指令
DIV NUMW ;此处不应用DIV指令,而应该用IDIV指令
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论