当前位置:首页 > 汇编答案 - 郑晓薇
(2) MOV BX,4 ADD AX,X[BX] MOV Y,AX (3) MOV BX,4
MOV SI,OFFSET X ADD AX,[BX+SI] MOV Y,AX
10 在数据寻址方式中,哪种寻址方式的操作数与指令一起存放在代码段? 查看正确答案
立即寻址方式中操作数(立即数)和指令一起存放在代码段中。 习题四
1 汇编语言程序有什么特点?什么是源程序? 2 简要说明从源程序到可执行程序的操作过程。
3 什么是伪指令?汇编指令与伪指令有何区别?写出4种常用的伪指令。 4 8086指令系统分为哪几类?举例说明算术运算类指令的用法。
5 在8086汇编语言中,哪些段寄存器可以用MOV指令赋值,哪些段寄存器不允许? 6 堆栈段寄存器SS和栈指针SP可以修改吗?如何修改?
7 入栈指令PUSH和出栈指令POP可以保存字节数据吗?要保存的话,如何实现? 8 有哪些方法可以获得操作数的有效地址? 9 解释下列伪指令的作用:
(1) ASSUME CS:CODE,DS:DATA (2) END START (3) VALUE DW 12,35,-6 (4) STRING DB ?INPUT:? (5) MESS DB 5 DUP(?) (6) XX DD 12345678H (7) ORG 0320H (8) CONT EQU 2*3.14 10 根据题目,写出相关伪指令:
(1) 定义数据段DATA,并在数据段中定义两个字单元X、Y,初始值都是0 (2) 定义一个字符串SRING,保存?Computer?
(3) 定义有100个字节单元的COUNT数组,初始值均为空 (4) 用赋值伪指令定义PI为3.14
(5) 用类型操作符LABEL将VALUE单元定义为字节型 查看正确答案
(1) DATA SEGMENT X DW 0 Y DW 0
DATA ENDS
(2) STRING DB ?Computer? (3) COUNT DB 100 DUP(?) (4) PI EQU 3.14
(5) VALUE LABEL BYTE
11 下列伪指令有错吗?如果有错,请指出错误原因: (1) X1 DB 35H,0,-80 (2) X2 DB 35,260,-1 (3) X3 DB 1234H (4) X4 DW 100 (5) X5 DW 100(?) (6) X6 DD ?AB? 查看正确答案 (1)对。(2)错。260超出了字节范围。(3)错。X3是字节型,1234H是字型,不匹配。
(4)对。(5)错。缺少DUP。(6)对。 12 写出下列指令的执行结果: TABLE DB 3,33,33 H (1) MOV AL,TABLE
(2) MOV AX,WORD PTR TABLE (3) MOV DX,OFFSET TABLE (4) MOV CL,TABLE+2 (5) MOV BX,SEG TABLE (6) MOV BX,TYPE TABLE (7) LEA DX,TABLE 查看正确答案 (1)AL=3。(2)AX=2103H。(3)DX=TABLE的偏移地址。(4)CL=33H (5)BX=TABLE的段地址。(6)BX=1。(7)DX= TABLE的偏移地址。
13 写出指令序列,分别求两个双精度数20125D68H和100349A6H的相加和相减运算。 查看正确答案 MOV DX,2012H MOV AX,5D68H MOV CX,1003H MOV BX,49A6H
ADD AX,BX (SUB AX,BX) ADC DX,CX (SBB DX,CX)
14 写出将DX、AX中的32位无符号数减CX中的16位无符号数,结果存放在DX、AX中的指令序列。 查看正确答案 SUB AX,CX SBB DX,0
15 写出将extra段的段地址传送给ES寄存器的指令序列。 查看正确答案 MOV AX,extra MOV ES,AX
16 根据给出的算式,写出指令序列(设X、Y、W为字节型,Z为字型): (1) Z=5(X+16) (2) Z=X/4-Y
(3) Z=8X+Y/16-W^2
(4) Z= (X+Y)(X-Y) -X/Y 查看正确答案 (1) MOV AL,16 ADD AL,X MOV BL,5 IMUL BL MOV Z,AX (2) MOV BL,4 MOV AL,X IDIV BL
SUB AL,Y MOV Z,AX (3) MOV AL,X MOV BL,8 IMUL BL MOV DX,AX MOV AH,0 MOV AL,Y MOV BL,16 IDIV BL CBW
ADD DX,AX MOV AH,0 MOV AL,W IMUL AL SUB DX,AX MOV Z,DX (4) MOV AL,X ADD AL,Y MOV BL,X SUB BL,Y MOV AH,0 IMUL BL MOV Z,AX MOV AL,X IDIV Y CBW
SUB Z,AX
17 分析下列程序段执行情况,给出结果: X DB 5,15,30 Y DB 22,14,6 Z DW ? ……
MOV BX,OFFSET X MOV AL,[BX] ADD AL,Y INC BX
SUB AL,[BX] MOV BL,Y+1 IMUL BL MOV Z,AX 查看正确答案
Z= (5+22-15)*14= 168
18 源程序在汇编过程中,系统是如何获知程序从哪儿开始执行的?
查看正确答案
从伪指令END START处获知程序从START标号开始。
19 两个数8576H和9988H,分别作减法和加法运算,写出指令及运算结果。运算结果影响哪些标志? 查看正确答案
(1)减法: (2) 加法:
MOV AX,8576H MOV AX,8576H MOV BX,9988H MOV BX,9988H SUB AX,BX ADD AX,BX
结果:AX=EBEEH 结果:AX=1EFEH
CF=1,OF=0,ZF=0,SF=1 CF=1,OF=1,ZF=0,SF=0 20 乘法和除法指令对于字和字节操作是如何进行的? 21 写出指令,用压缩BCD码实现下列运算: (1) Y1=56+34 (2) Y2=128-35 (3) Y3=68+23-45 查看正确答案 (1) MOV AL,56H MOV BL,34H ADD AL,BL DAA
MOV Y1,AL
(2) MOV AX,128H MOV BX,35H SUB AX,BX DAS
MOV Y2,AL (3) MOV AL,68H MOV BL,23H ADD AL,BL MOV BL,45H SUB AL,BL DAS
MOV Y3,AL
22 写出指令,用非压缩BCD码实现下列运算: (1) Z1=78+46 (2) Z2=95-27 (3) Z3=12×6-33 (4) Z4=(74+18)/6 查看正确答案
(1) MOV AX,0708H MOV BX,0406H ADD AL,BL
ADD AH,BH ;不用带进位加
共分享92篇相关文档