汇编语言 第三版 王爽 实验四

本文修正了百度文库上关于计算机实验题目的错误答案,并详细解释了两个实验题目的正确解答过程。针对4-1题,给出了完整的汇编语言程序代码;对于4-3题,明确了程序长度计算的方法及部分填空题的答案。

百度文库答案有误。

特写此博客。

实验题目:

虽然是第二版的,但是题目是一样的。



4-1

assume cs:code
code segment
        mov ax,0020H
        mov ds,ax
        mov bx,0
        mov cx,64
       s:mov [bx],bx
        inc bx
        loop s

        mov ax,4c00H
        int 21H
code ends
end

4-3

第二个空写23或者十六进制的17h均可。

查看程序长度:

debug exp4-1.exe之后 查看CX长度为001CH,


程序后两行指令

mov ax,4c00h
int 21h

长度为5H,两者相减。

或者

在debug中输入 u  + 地址 查看。



assume cs:code
code segment
        mov ax,<strong>cs</strong>
        mov ds,ax
        mov ax,0200h
        mov es,ax
        mov bx,0
        mov cx,<strong>23</strong>
       s:mov al,[bx]
        mov es:[bx],al
        inc bx
        loop s
        mov ax,4c00h
        int 21h
code ends
end


### 关于汇编语言第三版实验十的内容分析 根据用户的查询需求,以下是关于汇编语言第三版实验十相关内容的解析。虽然未直接提供具体代码示例,但可以通过已有的参考资料和专业知识推导出其实现思路。 --- #### 实验十的核心知识点 实验十通常涉及 **中断机制** 的学习与应用,这是汇编语言中的重要概念之一。通过设置中断向量表、编写中断服务程序等方式,可以让计算机响应特定事件并完成相应处理[^1]。 在实际编程过程中,需要掌握以下几个方面: - 中断的概念及其分类。 - 如何修改中断向量表(Interrupt Vector Table, IVT),使其指向自定义的服务程序地址。 - 编写简单的中断服务程序,并确保其能够正常返回到主程序继续运行。 下面给出一段基于以上理论框架下的伪代码实现: ```assembly assume cs:code, ds:data data segment msg db 'Hello from interrupt!', 0dh, 0ah, '$' data ends code segment start: ; 初始化数据段寄存器 DS mov ax, data mov ds, ax ; 将原 INT XXH 地址保存至其他位置以防丢失 cli ; 禁止中断防止冲突 xor ax, ax ; 设置 ES=0 (IVT 基础位于内存最低端) mov es, ax mov word ptr es:[XX*4], offset new_int_handler ; 修改偏移部分 mov word ptr es:[XX*4+2], seg new_int_handler ; 修改段基址部分 sti ; 开启中断允许标志位 main_loop: jmp main_loop ; 主循环等待触发中断 new_int_handler proc far push ax ; 保护现场 push bx ; lea dx, msg ; 显示消息提示来自中断调用 mov ah, 9 ; DOS 功能号打印字符串 int 21h ; pop bx ; 恢复现场 pop ax ; iret ; 返回到被中断处恢复执行流 new_int_handler endp code ends end start ``` > 注解:上述代码片段仅作为教学用途展示基本结构,其中 `XX` 表示目标中断编号需依据题目设定调整;另外注意真实环境中测试时应小心操作以免影响系统稳定性[^4]。 --- #### 解析要点总结 1. 使用 `cli/sti` 控制全局中断开关状态来保障更新过程安全可靠; 2. 正确计算目标中断入口所在物理地址以便准确覆盖原有条目; 3. 自定义 ISR 需遵循标准格式包括保留上下文信息并通过 `iret` 完成最终退出动作[^3]. ---
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值