汇编网首页登录博客注册
wenjie的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
好友圈
文章收藏
友情链接

[2010-08-14 20:09] 中断处理程序总结

8086CPU在收到中断信息后,所引发的中断过程
1、从中断信息中取得中断类型码
2、标志寄存器的值入栈
3、设置标志寄存器的第8位TF和第9位IF的值为0
4、CS的内容入栈
5、IP的内容入栈
6、从内存地址为中断类型码*4和中断类型码*4+2的两个字节单元中读取中断处理程序的入口地址设置IP和CS
中断过程的简洁描述
1、取得中断类型码N
2、pushf
3、TF=0、IF=0
4、push cs
5、push ip
5、(IP)=(N*4),(CS)=(N*4+2)

中断处理程序的编写方法的常规步骤:
1、保存用到的寄存器
2、处理中断
3、恢复用...
阅读全文 | 评论次数(0) | 浏览次数(563) | 所属类型(汇编学习)

[2010-08-10 00:37] 第十章学习总结

RET指令用栈中的数据,修改IP的内容,从而实现近转移
RETF指令用栈中的数据,修改CS和IP的内容,从而实现远转移
RET指令相当于执行POP IP
RETF指令相当于执行POP IP,POP CS...
阅读全文 | 评论次数(0) | 浏览次数(794) | 所属类型(汇编学习)

[2010-08-08 23:39] 检测点9.3

补全程序,利用loop指令,实现在内存2000H段中查找第一个值为0的byte,找到后,将它的偏移地址存储在dx中。

 

assume cs:code

code segment

start:

        mov ax,2000h

        mov ds,ax

        mov bx,0

        s:

                mov cl,[bx]

                mov ch,0

                inc cx    

                inc b...
阅读全文 | 评论次数(0) | 浏览次数(611) | 所属类型(汇编作业)

[2010-08-08 23:21] 检测点9.2

补全程序,利用jcxz指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中
assume cs:code
code segment
start:
       mov ax,2000h
       mov ds,ax
       mov bx,0
    s: mov cl,[bx]
       mov ch,0
       jcxz ok
       inc bx
       jmp short s
   ok: mov dx,bx
       mov ax,4c00h
       int 21h
code e...
阅读全文 | 评论次数(0) | 浏览次数(532) | 所属类型(汇编作业)

[2010-07-30 23:04] 检测点6.1

1、实现依次用内存0:0~0:15单元中的内容改写程序中的数据,完成程序:
assume cs:codesg
codesg segment
        dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
start: mov ax,0
       mov ds,ax
       mov bx,0

       mov cx,8
    s: mov ax,[bx]
       mov cs:[bx],ax
       add bx,2
       loop s

       mov ax,4c00h...
阅读全文 | 评论次数(0) | 浏览次数(545) | 所属类型(汇编作业)

[2010-07-30 15:26] 实验4

1、编程,向内存0:200~0:23F依次传送数据0~63,只能用9条指令,包括 mov ax,4c00h和int 21h
assume cs:code
code segment
  mov ax,200h
  mov ds,ax
  mov bx,0
  mov cx,63
s:mov [bx],bx
  inc bx
  loop s
  mov ax,4c00h
  int 21h
code ends
end

2、将mov ax,4c00h之前的指令复制到内存0:200处
assume cs:code
code segment
  mov ax,cs...
阅读全文 | 评论次数(0) | 浏览次数(623) | 所属类型(汇编作业)

[2010-07-28 22:51] 栈的综述

1、8086供了栈操作机制,方案如下:
   在SS、SP中存放栈顶的段地址和偏移地址;
   提供入栈和出栈指令,它们根据SS:SP指示的地址,按照栈的方式访问内存单元
2、push指令的执行步骤:1、SP=SP-2;2、向SS:SP指向的字单元中送入数据
3、pop指令执行步骤:1、从SS:SP指向的字单元中读取数据;2、SP=SP+2;
4、任意时刻,SS:SP指向栈顶元素
5、8086CPU只记录栈顶,栈空间的大小要我们自己管理
6、用栈来暂存以后需要恢复的寄存器的内容时,寄存器出栈的顺序和入栈的顺序相反
7、push、pop实质上是一种内存传送指令...
阅读全文 | 评论次数(2) | 浏览次数(796) | 所属类型(汇编学习)

[2010-07-26 23:51] 3.1-3.5小结

1、字在内存中存储时,要用两个地址连续的内存单元来存放,字的低位放在低地址单元中,高位字节放在高地址单元中
2、用mov指令访问内存单元,可以在mov指令中只给出单元的偏移地址,此时,段地址默认在DS寄存器中
3、[address]表示一个偏移地址为address的内存单元
4、在内存和寄存器之间传送字型数据时,高地址单元和高8位寄存器、低地址单元和低8位寄存器相对应
5、mov、add、sub是具有两个操作对象的指令,jmp是具有一个操作对象的指令
6、可以根据自己的推测,在debug中实验指令的新格式...
阅读全文 | 评论次数(0) | 浏览次数(578) | 所属类型(汇编学习)

[2010-07-25 02:09] debug 常用命令

查看、修改CPU中寄存器的内容:R命令
查看内存中的内容:D命令
修改内存中的内容:E命令(可以写入数据、指令,在内存中没有区别)
将内存中的内容解释为机器指令和对应的汇编指令:U命令
执行CS:IP指向的内存单元处的指令:T命令
以汇编指令的形式向内存中写入指令:A命令...
阅读全文 | 评论次数(0) | 浏览次数(563) | 所属类型(汇编学习)

[2010-07-25 01:07] 检测点2.2

1、给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为00010H到1000FH
开始:0001H*16+0H,结束:0001H*16+FFFFH

2、有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元,则SA应该满足的条件是:最小为:1001H,最大为:2000H
最大:SA*16+0H=20000H
最小:SA*16+FFFFH=20000H,应段首地址应为16的倍数,所以最小为1001H...
阅读全文 | 评论次数(0) | 浏览次数(590) | 所属类型(汇编作业)
『 查看更多文章 』