汇编 - 总练习
更新时间:2023-03-09 20:32: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”去掉,程序的功能有改变,为什么?
正在阅读:
汇编 - 总练习03-09
甲级单位编制纸塑制品胶带项目可行性报告(立项可研+贷款+用地+2013案例)设计方案 - 图文02-02
全员生发智慧系统04-03
服装象征意义在电影中运用05-23
管理理论与实务的重点总结04-04
指南健康领域的学习个人心得模板八篇08-03
关于召开基联会主任会议的通知06-10
人教版品德与社会六年级下册教案0091403-11
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 汇编
- 练习
- 2011广东省公务员《行测》真题之数量关系
- 文印室员工年度考核表
- 关于开关电源发展方向
- 人教版小学语文六年级上册教材分析
- 什么是集体林权制度改1
- 技术标及施工组织设计
- 充分发挥思想政治工作的助推剂作用 努力谋求地税事业取得新的发
- 第三章微分中值定理与导数的应用(4 24)
- 中心小学提高教育质量行动三年规划
- 烟台市莱山办事处区片控制性详细规划及莱院路城市设计任务书
- 辽宁省部分重点中学协作体2009年高考模拟考试(数学理).doc
- 2018年中国信息传媒行业调查分析报告目录
- 盗窃罪研究
- 大一下学期毛概客观题(已整理) 杜艳红 暨南大学
- 3205综放规程(2)
- 《匀变速直线运动与汽车行驶安全》教学设计
- 郑州餐饮行业发展调研报告
- 激发学生的热情
- 武汉二中2006语文
- 高中语文必修一(人教版)《烛之武退秦师》导学案