1)mov指令不能用于设置CS、IP的值,可通过jmp指令修改;
2)不支持将数据直接送入段寄存器,如mov ds,1000是非法的,可用间接的方式,如mov bx,1000 mov ds,bx实现;
3)在汇编源程序中,数据不能以字母开头,如mov ax,ffffh是非法的,要写成mov ax,0ffffh;
待补充……...


- [游客] 自己写一边,应该比看上两遍的书要来的牢靠。 02/03 13:39
- [tomato] 博主的学习态度要保持下去哦! 01/23 11:44
- [yky] 谢谢,学习了。 01/21 19:24
- [younggay] CPU会自动默认DS中的数据为段地址, =============== 这个理解不太严谨,对于 01/19 16:39
- [crazyman] 理解的没有什么问题。 01/18 16:32
- [acool] 恩,是这样的,如楼上说的,计算机的很多东西的描述不像现实中以1开始。 12/04 15:13
- [mouse] 恭喜^_^ 计算机里面很多东西都是从0开始的,比如上面的地址 数组下标等等 11/05 11:12
- [tomato] 祝贺你,明白了一个问题。^W^ 11/05 11:06
- [xiaochong] 1. 汇编指令 MOV AX, 0123H 中的0123不是内存地址20002和20001内的01, 05/31 17:01
- [游客] 谢谢老师,我作题时是用第二行的AX=31A3H加上第三行的AX=3123H,等于 62c6H,经老师 05/07 01:12
[2009-05-12 00:13] 8086 CPU指令约束笔记
[2009-05-11 16:48] 测试点3.1有感
做测试点3.1后,我终于搞懂了CS和DS的区别:
CS是用于存放指令代码基址
DS是用于存放数据段基址
两者的相同点在于:与偏移量结合后,表述同一地址的方式可以有很多。
只要满足dx*16+address相等即为同一内存单元。
例如 ds=0003H,address=0000H
ds:address==0003:0000=0002:0010=0001:0020=0000:0030...
CS是用于存放指令代码基址
DS是用于存放数据段基址
两者的相同点在于:与偏移量结合后,表述同一地址的方式可以有很多。
只要满足dx*16+address相等即为同一内存单元。
例如 ds=0003H,address=0000H
ds:address==0003:0000=0002:0010=0001:0020=0000:0030...
阅读全文 |
作者:jackieindi |
评论次数(2) |
浏览次数(734)
[2009-05-16 00:17] 晒晒我的单片机第一个个人作品
;实验所用的板子晶振为12MHZ,P0口用于控制LED灯显示(有4个LED灯),P1口用于控制LED的位选码,P2口控制键盘,LED灯为共阳级
;主界面显示当前时间的分钟和秒钟,能响应1号键(设置时间),2号键(显示小时和分钟),4号键(设置闹钟)
;设置时间界面能响应1号键(小时加1),2号键(分钟加1),3号键(保存设置返回主界面),4号键(不保存设置返回主界面)
;设置闹钟界面按键功能和设置时间基本一样,3号键还有开闹钟功能,4号键有关闹钟的功能
;显示小时和分钟能响应4号键(返回主界面)
;闹钟工作时能响应3号键(闹钟停止发声)
org 0h
aj...
;主界面显示当前时间的分钟和秒钟,能响应1号键(设置时间),2号键(显示小时和分钟),4号键(设置闹钟)
;设置时间界面能响应1号键(小时加1),2号键(分钟加1),3号键(保存设置返回主界面),4号键(不保存设置返回主界面)
;设置闹钟界面按键功能和设置时间基本一样,3号键还有开闹钟功能,4号键有关闹钟的功能
;显示小时和分钟能响应4号键(返回主界面)
;闹钟工作时能响应3号键(闹钟停止发声)
org 0h
aj...
阅读全文 |
作者:q470393267 |
评论次数(3) |
浏览次数(1627)
[2009-05-18 13:18] 检测点3.2(作业)
(1)补全下面的程序,使其可以将10000h~1000fh中的8个字,逆序复制到20000h~2000fh中。
mov ax,1000h
mov ds,ax 通过ax把1000中转给数据段寄存器ds
mov bx,2000h
mov ss,bx
mov sp,10h 通过bx把2000中转给栈段寄存器ss,并用sp=10h来设置栈顶2000:e(10h-2h=eh)
以上代码的目的是把数据段寄存器指定为1000(被复制的数),把栈段寄存器指定为2000,因为要把数据复制到20000~2000f中,根据入栈的特性栈顶需指向2000...
mov ax,1000h
mov ds,ax 通过ax把1000中转给数据段寄存器ds
mov bx,2000h
mov ss,bx
mov sp,10h 通过bx把2000中转给栈段寄存器ss,并用sp=10h来设置栈顶2000:e(10h-2h=eh)
以上代码的目的是把数据段寄存器指定为1000(被复制的数),把栈段寄存器指定为2000,因为要把数据复制到20000~2000f中,根据入栈的特性栈顶需指向2000...
阅读全文 |
作者:flyincold |
评论次数(1) |
浏览次数(576)
[2008-12-20 12:22] 学习笔记1
准备用《学习笔记》记录下重要的内容,希望汇编网永远存在!
要完整地描述一个内存单元,需要两种信息:1.内存单元的地址;2.内存单元的长度(类型)。
mov ax,【bx】
将一个内存单元的内容送入ax,这个内存单元的长度为2字节(字单元),存放一个字,偏移地址在bx中,段地址在ds中。
mov al,【bx】
将一个内存单元的内容送入al,这个内存单元的长度为1字节(字节单元),存放一个字节,偏移地址在bx中,段地址在ds中。
我们使用一个描述性符号“()”来表示一个寄存器或一个内存单元的内容。比如:
(ax)表示ax中的内容、(al)表示al中的内容;
(2000...
要完整地描述一个内存单元,需要两种信息:1.内存单元的地址;2.内存单元的长度(类型)。
mov ax,【bx】
将一个内存单元的内容送入ax,这个内存单元的长度为2字节(字单元),存放一个字,偏移地址在bx中,段地址在ds中。
mov al,【bx】
将一个内存单元的内容送入al,这个内存单元的长度为1字节(字节单元),存放一个字节,偏移地址在bx中,段地址在ds中。
我们使用一个描述性符号“()”来表示一个寄存器或一个内存单元的内容。比如:
(ax)表示ax中的内容、(al)表示al中的内容;
(2000...
阅读全文 |
作者:yuhuofei |
评论次数(0) |
浏览次数(700)
[2007-11-28 10:59] [转]学习密度与专注力
学习密度与专注力
By 刘未鹏(pongba)
C++的罗浮宫(http://blog.csdn.net/pongba)
上次学校里面有一个免费的李阳英语讲座,好奇于是就去听了一下。对一句话印象比较深刻,大意是说许多人学了快10年的英语,其开口的时间还不如在集训的七天内开口的时间长。也就是说,尽管学习时间很长,但学习密度极低,结果乘起来还是低。其实这种情况不仅存在于英语学习中,而是一种普遍的现象。人太容易为各种各样的事情分心,要集中注意力做一件事情是非常难的,而正因为难,少有人做到,那些做到的,就都变成了牛。
其实,在大学期间,最不缺的就是业余时间,最缺的就...
By 刘未鹏(pongba)
C++的罗浮宫(http://blog.csdn.net/pongba)
上次学校里面有一个免费的李阳英语讲座,好奇于是就去听了一下。对一句话印象比较深刻,大意是说许多人学了快10年的英语,其开口的时间还不如在集训的七天内开口的时间长。也就是说,尽管学习时间很长,但学习密度极低,结果乘起来还是低。其实这种情况不仅存在于英语学习中,而是一种普遍的现象。人太容易为各种各样的事情分心,要集中注意力做一件事情是非常难的,而正因为难,少有人做到,那些做到的,就都变成了牛。
其实,在大学期间,最不缺的就是业余时间,最缺的就...
阅读全文 |
作者:wuerlang |
评论次数(14) |
浏览次数(2353)
[2008-06-26 22:52] 由检测点2.2引发的思考与实验
由检测点2.2引发的思考与实验
检测点2.2中的第一小题说到:给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为()到()?
这个小题的关键点在于,求出偏移的变化范围,再利用公式“段地址*16+偏移地址=物理地址”即可求得CPU的寻址范围。
关于这个小题的偏移变化范围,据我所知,好像有两种,一个是0~FFFFH,另一种则是0~15。那么两种答案到底谁对谁错呢?或者说,哪一个答案更加合理呢?为此,笔者设计了一个实验对此进行测试,具体情况如下:
一、设计思路:
两个答案中,一个是0~15,另一个是0~FFFFH,两个答案中都包含0~15这个部分,因此只要验证超...
检测点2.2中的第一小题说到:给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为()到()?
这个小题的关键点在于,求出偏移的变化范围,再利用公式“段地址*16+偏移地址=物理地址”即可求得CPU的寻址范围。
关于这个小题的偏移变化范围,据我所知,好像有两种,一个是0~FFFFH,另一种则是0~15。那么两种答案到底谁对谁错呢?或者说,哪一个答案更加合理呢?为此,笔者设计了一个实验对此进行测试,具体情况如下:
一、设计思路:
两个答案中,一个是0~15,另一个是0~FFFFH,两个答案中都包含0~15这个部分,因此只要验证超...
阅读全文 |
作者:duckgaga |
评论次数(8) |
浏览次数(2562)
[2007-09-29 08:51] 为什么学好计算机就必须学好汇编?
这个问题太抽象。
汇编是干什么的?为什么要学好汇编?不学不行吗?要学好计算机非得学好汇编吗?乍看到这些问题,真是一头雾水。学好汇编会有什么好处?学好汇编老板就给你涨工资?还是学好汇编上天就会赐给你个大美女?还是政府就会给你解决住房问题?真是搞不懂。不过倒可以肯定头脑没大问题的人不会选择上面三个答案。那到底是为什么呢?是啊,停留在问题的表面似乎永远找不到答案。我们试图找一下答案,我们从这里入手,学习过汇编的人会了解计算机的底层工作方式,他会了解到cpu、内存、硬盘等硬件设备是如果协调地工作在一起,数据从哪里转移到哪里,在哪里被运算,又在哪里被存储起来等等等等。总之,计算机在你的...
汇编是干什么的?为什么要学好汇编?不学不行吗?要学好计算机非得学好汇编吗?乍看到这些问题,真是一头雾水。学好汇编会有什么好处?学好汇编老板就给你涨工资?还是学好汇编上天就会赐给你个大美女?还是政府就会给你解决住房问题?真是搞不懂。不过倒可以肯定头脑没大问题的人不会选择上面三个答案。那到底是为什么呢?是啊,停留在问题的表面似乎永远找不到答案。我们试图找一下答案,我们从这里入手,学习过汇编的人会了解计算机的底层工作方式,他会了解到cpu、内存、硬盘等硬件设备是如果协调地工作在一起,数据从哪里转移到哪里,在哪里被运算,又在哪里被存储起来等等等等。总之,计算机在你的...
页码数(1):
1