东大11秋汇编语言程序设计试题解析
5星 · 超过95%的资源 需积分: 18 142 浏览量
更新于2024-09-16
2
收藏 47KB DOC 举报
"东大11秋汇编语言程序设计试题"
这篇资料主要涵盖了汇编语言程序设计的一些基础知识点,包括寻址方式、数据表示、运算符的使用、栈的操作、条件转移指令、数据存储格式、算术运算溢出标志、子程序调用以及中断处理。以下是对这些知识点的详细解释:
1. **寻址方式**:在汇编语言中,指令`MOV AL,[BX+100]`的源操作数是通过基址加偏移量的方式来访问的,这称为基址变址寻址。BX寄存器作为基址,100作为偏移量。
2. **数据表示的合法性**:在汇编语言中,合法的数据表示可以是十六进制数(如A3H)、二进制运算表达式(如2 AND 3*5,虽然在实际编程中可能不常见)等。非法的数据表示包括使用字母Q(如138Q,非标准十六进制或二进制表示)。
3. **栈操作**:栈是一种特殊的内存区域,遵循“后进先出”原则。PUSH指令将数据压入栈,导致栈顶指针SP减小。因此,如果SP初始值为100H,执行PUSH AX后,SP会减2变为00FAH。
4. **条件转移指令**:在比较指令如CMP之后,可以使用JMP家族的指令进行条件转移。例如,如果AX≥BX,JNB(无符号不小于)和JA(无符号大于)都能转到OK执行。
5. **数据定义**:在汇编语言中,DB用于定义字节数据,DW用于定义字数据,DD用于定义双字数据。所以,X1DB 'ABCD'是错误的,因为字符串应该用DB定义,但X1DB 1234H是正确的,表示一个16位的数值。
6. **算术运算和标志位**:在AL(8位)和BL(8位)中执行ADD指令后,根据结果,OF(溢出标志)和CF(进位标志)会被设置。当AL=67H,BL=34H时,执行ADD AL, BL不会产生溢出,且低4位没有发生进位,因此OF=0,CF=0。
7. **除法运算**:对于带符号数的除法,应使用IDIV指令。所以,计算AL/BL的商,正确的方法是IDIVBL。
8. **子程序调用**:在调用NEAR(近似)子程序SUBR时,可以使用LEA指令加载子程序的地址到寄存器,然后使用CALL指令调用。因此,正确的方式是LEASI, SUBR; CALL SI。
9. **8259A中断控制器**:ICW2的值设定中断级别,15H表示最高优先级。当IR2端有中断请求时,送出的中断方式码是IR2的级别加上高4位的ICW2,即04H+11H=15H。
10. **8259A级联**:在两个8259A级联的中断系统中,从8259A连接在主8259A的IR3上,主8259A的ICW3设置为中断请求线IR3对应的二进制值,即00001100B=0CH,而从8259A的ICW3设置为主8259A的中断输入端口,即00001000B=08H。
此外,题目还涉及了一些错误的指令,比如MOV DS, CS和MOV CS, AX,这两个指令在实模式下是不允许的,因为CS寄存器不能被直接写入。
这份试题涵盖了汇编语言程序设计的基础知识,包括基本操作、逻辑判断、子程序调用和中断处理等方面,是学习汇编语言的重要练习材料。
2010-02-01 上传
2011-12-21 上传
2011-12-21 上传
2024-08-08 上传
2023-07-27 上传
2011-12-21 上传
2022-11-11 上传
2011-12-21 上传
2015-06-06 上传
yjmxm
- 粉丝: 2
- 资源: 16
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍