汇编 - 总练习
更新时间:2023-12-22 11:04:01 阅读量: 教育文库 文档下载
- 汇编语言推荐度:
- 相关推荐
1. 设 (DS)=1000H, (ES)=2000H, (SS)=3000H, (BX)=100H, (SI)=200H, (DI)=300H, (BP)=400H。请指出下列各条指令中目的操作数是什么寻址方式?并说明物理地址是多少?(实方式) (1) SUB [BP], BX (2) MOV [BX+DI], SI (3) ADD ES:[SI], DI (4) MOV 10[BX], DI (5) MOV DS:[100H], BX
2. 判断下列指令是否有错误。对于错误指令,说明错误原因。 (1) MOV DS, DX (2) MOV [CX], BX (3) PUSH CL
(4) SBB 10[SI][DI], AX (5) MOV BYTE PTR [BX] , ‘0’ (6) MOV CS, AX (7) MUL 10
(8) LEA POIN, BUFW (9) ADD DI, CH
3. 数据段定义如下:
DATA SEGMENT A DW 1234H, D+7 B DB 2 DUP (‘4’,5) C EQU $ - B D DB 6, ‘123’ E DD B DATA ENDS
以字节为单位,画该数据段存储示意图,同时在图的左边标明各变量所在的位置。(设DATA段的段址为2000H, A的偏移地址为 0000H). C的值是多少?
A ???????????
4. 依次执行如下程序段中的各指令,指出每一条指令执行后,AX中的十六进制内容是什么? MOV AX, 1234H (AX) = SAL AX, 1 (AX) = AND AL, 0FH (AX) = ADD AX, 1000H (AX) = ROR AX, 1 (AX) = XCHG AH, AL (AX) = INC AH (AX) = TEST AX, 8000H (AX) =
5. 执行下列指令后,各寄存器的内容是什么? NUMW DW 3, -5, 7, -9
(NUMW 所在段的段址已在DS中,NUMW的偏移地址为 0000H) LEA BX, NUMW MOV AX, [BX] MOV CX, 3[BX] MOV DX, NUMW + 4
(AX) = (BX) = (CX) = (DX) =
6. 执行如下程序段: MOV AL, 2 MOV CL, -2 MUL CL
执行完后 (AX) =
若将最后一个指令换成 IMUL CL, 则 (AX) =
7. 设 (AX)= 3456H, (BX) = 6321H, 执行指令 ADD AX, BX 后,
CF= OF= ZF = SF =
8. 指出如下程序段的功能 OR AX, AX JNS L1 NEG AX
L1:
9. 如下程序段的功能是什么?设 STR1的偏移地址为 0000H,
程序段执行结束时, (SI) 是多少? LEA SI, STR1 LEA DI, STR2 MOV CX, 20
CLD REP MOVSB
10. 指出如下程序段的功能。
MOV AH, 1 INT 21H CMP AL, ‘A’ JB LN CMP AL, ‘Z’ JA LN MOV DL, ‘Y’ JMP DISPLAY
LN: MOV DL, ‘N’ DISPLAY : MOV AH, 2
INT 21H
11. 编写一个名为 MY_DATA的数据段,依次定义如下变量:
A 为双字类型的变量,初值为 12345678H B 为字变量,初值为 100
C 为字符串变量,初值为 COMPUTER.
12. 设一个数据段中定义了字节类型的变量STR,请分别使用规定的寻址方式,将STR+2单元中的内容送入BH,将STR+6单元中的内容送入 BL(假设该段的段首址已在DS中)
(1) 直接寻址
(2) 寄存器间接寻址
(3) 寄存器变址寻址
13. 写指令段完成如下功能:从端口号为 378H的寄存器中读入一个字数据。
14. 已知在字单元 NUMW 中存放一个字数据,下列程序段
统计该数据中1的个数,并将统计结果存入字节单元STR中。 NUMW DW 72H STR DB 0
??
MOV BL, 0 MOV AX, [SI] LP1: AND AX, AX LP2 SHL AX, 1 LP1 INC BL JMP LP1 LP2: ?..
15. 已知在 以 BUF 为首址的字节存储区中,存放着一个以
0DH为结束标志的字符串,试用9号功能调用显示输出该字符串。
MOV AX, SEG BUF MOV DS, AX LEA BX, BUF LOP:
CMP AH, 0DH JMP LOP LOP1:
MOV AH, 9 INT 21H
16. 已知如下宏定义:
R_W MACRO ADDR, FUNC_NO
MOV BX., SEG ADDR MOV DS, BX LEA DX, ADDR MOV AH, FUNC_NO INT 21H ENDM
写出 “R_W BUF, 10” 的宏扩展。
17. 设 (CS)= 0B92H, (SP)=2000H, 标号 LP的偏移地址为 0012H, 子程序 PROC1 所在段的段首址为 0D95H, 其入口的偏移地址为 0022H.
执行 CALL FAR PTR PROC1 LP:
画出执行 CALL 指令后的堆栈示意图,并指出 (CS), (IP) (SP) 各是多少?
18. 已知在buf 缓冲区中存放着 大小在0 ~ 100之间的数。
有一程序试图统计并显示其中小于60的数据个数。问程序是否实现了该功能?显示的结果是多少?如未实现该功能,请说明原因,并修改修改程序段,实现之。 buf dw 75, 84, 48, 89, 55 , 67
N =6
mov dl, 0 mov bx, 0
mov cx, 6 lopa:cmp buf[bx], 60 jae l1 inc dl l1: inc bx loop lopa add dl, 30h mov ah,2
Int 21h
19. 执行如下程序段后,(AL)= ?
buf db 41H, 42H, 43H, 44H, 45H
LEA BX, BUF MOV AL, 3 XLAT
20. 以字变量BUF为首址的存储单元中存放了数量不超过100的有符号数;下列程序段统计了其中正数(含0)和负数的个数,并分别存放到BL,BH中。 DATA SEGMENT
BUF DW -1,10,5,0FF12H,8789H,COUNT EQU DATA ENDS
??
AND BX,
LEA SI,BUF MOV CX,COUNT
AA:CMP ,0 INC BL
BB:INC BH CC:ADD SI,2
??21、RADIX是一个将AX中的十六位无符号二进制数转换成由BX内容指定的不大于10进制的数的子程序。它将所求的各位数字的ASCII码按高位在前、低位在后的顺序存放在以DI为指针的字节存取区中。
RADIX PROC
PUSH CX PUSH DX MOV CXR1:
DIV BX PUSH DX INC CX CMP JNE R1
R2:
ADD AL MOV [DI] INC DI LOOP R2
POP CX RET RADIX ENDP
,0 ,30H ,AL ,0 22. 编写完整的程序:设在以BUF 为首址的字存储区中存储了多个有符号数,试编写一完整的程序,求出其中所有正数的和,存放到 P_SUM 字存储区中,并将其中所有的负数,依次存放到NEG_BUF为首址的字存储区中。
23. 分析思考
已知某次上机题为:从键盘输入一个字符,若为大写字母A则显示输出“ASSEMBLY LANGUAGE.”; 若为大写字母P则显示输出“PASCAL LANGUAGE.”; 若为大写字母Q则程序退出;若为其他键则显示输出“OTHERS.”。这三种信息在屏幕上应单独占一行。
某学生编写源程序后,用MASM(V6.)和LINK将源程序转换成可执行程序。执行后发现: (1) 当按下A时,屏幕上显示如下: A
ASSEMBLY LANGUAGE.OTHERS.
(2)接着按P时,上述第二行的内容又变成了: PASCAL LANGUAGE.E.OTHERS.P
该学生修改了数据段定义后就达到了题目的要求。请按实验报告的要求书写一份实验报告。并回答:对修改前的程序,如果完成上述(1)(2)操作之后,按下字母B ,屏幕上显示的信息是怎样的?
24 设一个程序由两个模块MAIN.ASM 和 SUBP.ASM组成。 MAIN.ASM 程序如下: .386
EXTRN CONVERT:NEAR
_________________________________ STACK SEGMENT USE16 STACK DB 200 DUP(0) STACK ENDS
DATA SEGMENT USE16 RESULT DB 200 DUP(0) TAB DB 'ABCDEFGHIJ' DATA ENDS
CODE SEGMENT USE16 PARA PUBLIC ‘CODE’ ASSUME CS:CODE, DS:DATA, SS:STACK BEGIN: MOV AX, DATA MOV DS, AX MOV BX, 0 LEA DI, RESULT NEXT: MOV AH, 1 INT 21H CMP AL, 0DH JE EXIT
CALL CONVERT MOV [DI], AL INC DI JMP NEXT EXIT: MOV AH, 4CH INT 21H CODE ENDS
END BEGIN
第二个程序模块 SUBP.asm, 如下: .386
PUBLIC CONVERT
__________________________________________________ CODE SEGMENT ___________________________________ ASSUME CS:CODE CONVERT PROC PUSH BX LEA BX, TAB CMP AL, '0' JB L_RET CMP AL, '9' JA L_RET SUB AL, 30H
XLAT L_RET: POP BX RET CONVERT ENDP CODE ENDS END
(1)填写程序中的划线行,使得程序完整 (2)程序的功能是什么?
(3)使用TD.EXE调试该程序时,如果想单步执行子程序CONVERT中的指令,问执行哪些操作后,可以使得IP为子程序的第一条指令的有效地址?进入子程序后,执行何操作,可以单步执行各语句?
(4)如果将子程序CONVERT中语句“POP BX”去掉,程序的功能有改变,为什么?
正在阅读:
汇编 - 总练习12-22
人工挖孔桩专项施工方案09-21
广西虎鹰水泥有限公司关于二期工程及粉磨站立项审批、环评、验收...02-20
东财《保险学概论》全部作业题及答案02-02
魔幻蛋糕作文1000字07-07
最新中考英语作文练习素材积累05-08
纪检监察案件审理培训材料(电子版)01-25
2018年高级汽车维修工考试题(全)05-07
2020年《考研政治》试题(一)01-14
水文地质与工程地质答案12-08
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 汇编
- 练习
- AudioFlinger分析
- 比较肯德基和麦当劳在中国的经营战略
- 中小学资料六年级语文上册 第二单元怀念母亲教案 新人教版
- 2019届四年级语文下册第七单元22宋庆龄故居的樟树教学反思2苏教版
- 新农村建设的法治现状及存在的问题
- 文印员演讲稿
- 配套K12四川省成都市高中数学 第一章 常用逻辑用语 第3课时 充分必要条件的综合应用同
- 例析创新演示实验在物理课堂教学中的应用
- 网院北语18秋《面向对象程序设计》作业 - 2(满分)
- 如何做好车间主任
- 烟台市莱山办事处区片控制性详细规划及莱院路城市设计任务书
- 切实提高学员连正规化管理水平-2019年文档
- 九年级思想品德基础知识期中复习
- 2018年中国信息传媒行业调查分析报告目录
- 充分发挥思想政治工作的助推剂作用 努力谋求地税事业取得新的发展
- 技术标及施工组织设计
- 有效教学学习心得体会
- 幼儿习惯养成教育实施方案
- 临检室手工项目LJ-FXXMSOP-07
- 大一下学期毛概客观题(已整理) 杜艳红 暨南大学