汇编语言复习知识点(郑晓薇版)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.9 写出下列算式的二进制运算结果,标志位CF 、SF 、ZF 、OF 分别是什么值?
(1)56+63 (2)83-45 (3)-74+29 (4)-92-37 答案:
(1) 56+63=01110111B ,CF=0,SF=0,
ZF=0,OF =0
(2) 83-45=00100110B ,CF=0,SF=0,ZF=0,OF =0
(3) -74+29=11010011B ,CF=0,SF=1,ZF=0,OF =0
(4) -92-37=01111111B ,CF=1,SF=0,ZF=0,O F=1
2.13 有一个32K 字节的存储区,首地址是3302:5AC 8H ,写出其首单元和末单元的物理地址。 答案:
首单元的物理地址=38AE8H ,末单元的物理地址=38AE8H+7FFFH=40AE7H
2.15 存储单元地址和内容表示如下,请画出存储单元存放形式。
(1) (1280A)=3456H (2) (20021H)=4DH (3) (33450H)=37A520D1H
2.16 根据逻辑地址计算出物理地址,并解释逻辑地址与物理地址的对应关系。
(1) 2389:3DE9H (2) 1230:EC92H (3) 14D9:C202H 答案:
(1)物理地址=27679H (2) 物理地址=20F92H (3) 物理地址=20F92H
(2)和(3)的物理地址是一样的。说明逻辑地址不唯一,多个逻辑地址可对应到同一个物理单元上。
2.17 给出段地址和偏移地址如下,计算出对应的物理地址。
(CS)=54C3H ,(ES)=2569H ,(DS)=1200H ,(SS)=4422H ,
(BX)=5678H ,(SP)=9945H ,(IP)=0E54H ,(DI)=63B1H 答案:
代码段CS:IP 的物理地址=55A84H 堆栈段SS:SP 的物理地址=4DB65H
数据段DS:BX 的物理地址=17678H 附加段ES:DI 的物理地址=2BA41H
3.2 分别写出与数据有关的7种寻址方式并举例说明。
3.3 已知(BX)=1290H ,(SI)=348AH ,(DI)=2976H ,(BP)=6756H ,(DS)=2E92H ,(ES)=4D82H ,(SS)=2030H ,请指出下列指令的寻址方式,并求出有效地址EA 和物理地址: MOV AX,BX MOV AX,1290H MOV AX,[BX] MOV AX,DS:[1290H] MOV AX,[BP] MOV [DI][BX],AX MOV ES:[SI],AX 查看正确答案
MOV AX,BX 源操作数为寄存器寻址,EA 无,物理地址 无
MOV AX,1290H 立即寻址,EA 无,物理地址 无 MOV AX,[BX] 寄存器间接寻址,EA=1290H, 物理地址=2FBB0H
MOV AX,DS:[1290H] 直接寻址,EA=1290H, 物理地址=2FBB0H
MOV AX,[BP] 寄存器间接寻址,EA=6756H, 物理地址=26A56H
MOV [DI][BX],AX 目的操作数为基址变址寻址,EA=3C 06H, 物理地址=32526H
MOV ES:[SI],AX 寄存器间接寻址,EA=348AH, 物理地址=50CAAH
3.7 请指出下列指令的错误: MOV AX,[CX] MOV AL,1200H MOV AL,BX MOV [SI][DI],AX MOV ES:[DX],CX MOV [AX],VALUE MOV COUNT,[SI] 答案:
MOV AX,[CX] 错。CX不能为间址寄存器
MOV AL,1200H 错。立即数超出8位寄存器范围
MOV AL,BX 错。两个操作数不匹配
MOV [SI][DI],AX 错。两个变址寄存器不能在一起MOV ES:[DX],CX 错。DX不能为间址寄存器
MOV [AX],VALUE 错。AX不能为间址寄存器
MOV COUNT,[SI] 错。两个操作数不能都是存储单元3.9 写出用下列寻址方式将存储单元X中的第3个字取出,AX与其相加再放入Y单元的指令序列。
(1)直接寻址(2)寄存器相对寻址(3)基址变址
答案
(1) ADD AX,[X+4]
MOV Y,AX
(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
4.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
4.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
4.11 下列伪指令有错吗?如果有错,请指出错误原因:(1) X1 DB 35H,0,-80 (2) X2 DB 35,260,-1 (3) X 3 DB 1234H (4) X4 DW 100 (5) X5 DW 100(?) (6) X6 DD ‘A B’
查看正确答案
(1)对。(2)错。260超出了字节范围。(3)错。X3是字节型,1234H是字型,不匹配。
(4)对。(5)错。缺少DUP。(6)对。
4.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= T ABLE的偏移地址。
4.24 编程序。将键盘输入的小写字母变为大写字母显示在屏幕上。
查看正确答案
.model small
.code
start:
mov ah,1 ;键盘输入
int 21h
sub al,20h ;变为大写
mov dl,al
mov ah,2
int 21h
mov ah,4ch
int 21h
end start
4.26 编写程序,建立一个0~9的平方根
表,查表可得某数的平方根。
data segment
x db '0.000','1.000','1.414','1.732','2.000'
db
'2.236','2.449','2.646','2.828','3.000' ;建
立字符表
y db 5 dup(?) ;存放查到平方根
u db 3 ;要查的数
data ends
code segment