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

我的博客

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

[2013-12-08 21:16] 第九章 (答案属于个人解答,如有问题请留言指教交流,谢谢!O(∩_∩)O~)

九章:转移指令的原理
        可以修改IP,或同时修改CS和IP的指令统称为转移指令,转移指令就是可以控制CPU执行内存中某处代码的指令。
        8086CPU的转移行为有以下几类:
        .只修改IP时,称为段内转移,比如:jmp ax.
        .同时修改CS和IP时,称为段间转移,比如:jmp 1000:0
        根据对IP修改风范围不同,段内转移又分为:短转移和近转移。
        .短转移IP的修改范围为-128~127
        .近转移IP的修改范围为-32768~32767
        8086CPU的转移指令分为以下几类。
        .无条件的转移指令(如:jmp)
        .条件转移指令
        .循环指令(如:loop)...
阅读全文 | 评论次数(0) | 浏览次数(495) | 所属类型(总结)

[2013-12-08 21:14] 第八章 (答案属于个人解答,如有问题请留言指教交流,谢谢!O(∩_∩)O~)

八章:数据处理的两个基本问题
        (1)处理的数据在什么地方?
        (2)要处理的数据有多长?
        寄存器:(register)
        段寄存器:segment register
reg集合:ax bx cx dx ah al bh bl ch cl dh dl sp bp si di;
sreg集合:ds ss cs es
8.1 bx、si、di 和bp
        1、在8086cpu中,只有这4个寄存器可以用在"[...]"中来进行内存单元的寻址。
        2、在[...]中,这4个寄存器可以单个出现,或只能以4中组合出现:bx和si、bx和di、bp和si、bp和di。
        3、只要在[.....
阅读全文 | 评论次数(0) | 浏览次数(423) | 所属类型(总结)

[2013-12-08 21:12] 第七章 (答案属于个人解答,如有问题请留言指教交流,谢谢!O(∩_∩)O~)

更灵活的定位内存地址的方法
        之前:[idata]、[bx]
7.1 and  和 or 指令。
        (1)and 指令:逻辑与指令,按位进行 与 运算。
                通过该指令可将操作对象的相应位设为0,其他位不变。(异位为0)
                将al的第6位设为0的指令是:and al,10111111B
                将al的第7位设为0的指令是:and al,01111111B
        (2) or 指令  :逻辑或指令,按位进行 或 运算。
                通过该指令可将操作对象的相应位设为1,其他位不变。(异位为1)
                将al的第6位设为0的指令是:and al,01000000B
                将al的第7位设为0的...
阅读全文 | 评论次数(0) | 浏览次数(471) | 所属类型(反思)

[2013-12-08 21:10] 第六章 (答案属于个人解答,如有问题请留言指教交流,谢谢!O(∩_∩)O~)

包含多个段的程序:
如果我们需要的空间超过256个字节该怎么办?
        程序取得空间的方法有2种:一是在加载程序的时候为程序分配,再就是程序在执行的过程中向系统申请。本书不讨论第二种方法。

1、在代码段中使用数据
        例:累加 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
        源程序:
assume cs:code
code segment
        dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
        mov bx,0
        mov ax,0
        mov cx,8
      s:add...
阅读全文 | 评论次数(0) | 浏览次数(455) | 所属类型(总结)

[2013-11-07 20:33] 第5章总结、笔记

1、[bx]和内存单元的描述
        [bx]表示一个内存单元,它的偏移地址在bx 中,,比如 mov al,[bx];
    loop 指令:代表循环。
2、描述性符号:“()”
    (ax)表示ax当中的内容,(al)表示al当中的内容。(ds)表示ds当中的内容,(20000H)表示内存20000H单元的内容。
        “()”当中的元素可以有3中类型:a、寄存器名。b、段寄存器。c、内存单元的物理地址(一个20位数据)。
        “(X)”表示的数据有两种类型:a、字节。b、字。是哪种类型由寄存器名和运算决定。
        (al)为字节型,(ax)为字型。al=(20000H)为字节型,,a...
阅读全文 | 评论次数(0) | 浏览次数(626) | 所属类型(总结)

[2013-09-09 15:28] 第四章总结:

源程序:segment 和 ends :是一成对的伪指令,写程序时必须用到。
        功能:定义一个数据段,segment 说明段的开始 ends 说明段的结束。
        格式:
                段名 segment
                    :
                    : 
                段名 ends
        程序:[段1][段2]...[段n]

        [段*]:[代码][数据][栈空间]。
        
        end:一个汇编程序的结束标记。
        assume:【假设】它假设某一段寄存器和程序中的某一个用segment...ends 定义的段相关联起来。
                如:assume cs:codesg
                        codesg segment
                         ...
阅读全文 | 评论次数(0) | 浏览次数(517) | 所属类型(总结)

[2013-07-26 11:13] 第三章监测点3.1

点击查看原图
监测点3.1:
(1)在debug中,用“d 0:0 1f”查看内粗你,结果如下。
0000:0000 70 80 F0 30 EF 60 30-00 80 80 12 66 20 22 60 
0000:0010 62 26 E6 D6 CC 2E 3C-AB BA 00 00 26 06 66 88
下面的程序执行前,AX=0,BX=0,写出每条汇编指令执行完成后相关寄存器中的值。
mov ax,1
mov ds,ax
mov ax,[0000]                ax=2662H;   ds:0000= 0001:0000=00010;
mov bx,[0001]                bx=E626H; ...
阅读全文 | 评论次数(0) | 浏览次数(526) | 所属类型(汇编作业)

[2013-07-22 22:25] 实验1查看CPU和内存,用机器指令和汇编指令编程

点击查看原图
1.使用debug将上面的程序段写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器的变化。

2.利用下面3条指令计算2的次方。
mov ax,1
add ax,ax
jmp 2000:0003

解:
-a 2000:0
mov ax,2
add ax,ax
jmp 2000:0003
用t命令执行8次即可。
3.查看内存中的内容:
pc机主板的 ROm中FFF00~FFFFF中存在此主板的生产日期;
可是无法修改。我的为:02/14/11;因为是ROM中,所以无法修改。
4.向内存B810出写入数据:
如:-e B810:0 11 11 22 22...
阅读全文 | 评论次数(0) | 浏览次数(475) | 所属类型(汇编作业)

[2013-07-22 21:55] 最近几天的笔记总结:

8086CPU是16位结构的CPU
结构特性:
 a 运算一次最多可以处理16位的数据,也就是2个字节,2Byte。
 b 寄存器的最大宽度为16位,也就是2个字节,2Byte,一个字word。
 c 寄存器和运算器之间的通路为16位。应该是允许通过的字节是2个字节,2Byte。

8086CPU给出物理地址的方法:

8086CPU的地址总线为20位,也就有1MB的寻址能力。但因为内部是16位结构。所以在8086CPU内部采用将 两个16位地址合成 一个20位的物理地址的方法。

规律:
        (1)一个数据的二进制形式左移1位,相当于该数据乘以2;
   ...
阅读全文 | 评论次数(0) | 浏览次数(465) | 所属类型(总结)

[2013-07-22 10:26] 监测点 2.3

执行完下面3条指令,程序修改了几次IP,分别是在什么时候,最后IP的值为多少?
 mov ax,bx
 sub ax,ax
 jmp ax

一共修改了4次IP:
 读取mov ax,bx后 IP的值改变,执行mov ax,bx
 读取sub ax,ax后 IP的值改变,执行sub ax,ax
 读取jmp ax后 IP的值改变,执行jmp ax
 因为 执行的是jmp ax 所以IP再次被改变,最后IP=ax=0,一共4次改变。...
阅读全文 | 评论次数(0) | 浏览次数(479) | 所属类型(汇编作业)
『 查看更多文章 』