1 首先区分bit 和sbit
bit和int char之类的差不多,只不过char=8位, bit=1位而已。都是变量,编译器在编译过程中分配地址。除非你指定,否则这个地址是随机的。这个地址是整个可寻址空间,RAM+FLASH+扩展空间。bit只有0和1两种值,意义有点像Windows下VC中的BOOL。
sbit是对应可位寻址空间的一个位,可位寻址区:20H~2FH。一旦用了sbi xxx = REGE^6这样的定义,这个sbit量就确定地址了。sbit大部分是用在寄存器中的,方便对寄存器的某位进行操作的。
sbit的用法有三种:
第一种方法:sbit 位变量...
- [tomato] 博主好久都没来过了!怎么今天有空冒个泡? 04/04 22:26
- [zouhehui] 我想请教一下:指令缓冲寄存器跟指令缓冲器的区别在哪里?谢谢! 关于描叙语言我在一些汇编语言的书上看 12/09 21:59
- [zhouhanhui] 不是指令缓冲寄存器而是指令缓冲器,描述符号应是(IP)=(AX)我个人认为使用描述符号这主要是与C语 12/09 12:24
- [游客] 互相帮助。 12/05 10:24
- [suixin] 客气 12/04 22:12
- [zouhehui] 呵呵,谢谢! 12/04 18:04
- [zouhehui] 呵呵,谢谢你们替我看作业! 12/04 17:54
- [suixin] 谢谢你 12/04 14:37
- [suixin] 我知道了错误处在那里了 MOV AX,1000H MOV SS,AX MOV SP,0 12/04 14:36
- [suixin] 你说说你的看法 12/04 14:29
- [suixin] 过奖了,我们都需要努力 11/30 21:58
- [suixin] 我们两人把这本中的内容都给概括了,呵呵 11/30 08:12
[2012-04-04 16:59] c51编程中sbit sfr 用法
阅读全文 |
评论次数(1) |
浏览次数(554) |
所属类型(C51MCU)
[2010-01-01 22:07] 实验3 编程、编译、连接、跟踪
(1)将下面的程序保存为t1.asm,将其生成可执行文件按t1.exe。
assume cs:codesg
codesg segment
mov ax,2000H ;ax=2000h
mov ss,ax ;ss=2000h
mov sp,0 ;sp=0000h
add sp,10 ;sp=000ah
pop ax ;ax=0dfah
pop bx ;bx=3026h
push ax ;ax=0dfah
push bx ;bx=3026h
pop ax ...
assume cs:codesg
codesg segment
mov ax,2000H ;ax=2000h
mov ss,ax ;ss=2000h
mov sp,0 ;sp=0000h
add sp,10 ;sp=000ah
pop ax ;ax=0dfah
pop bx ;bx=3026h
push ax ;ax=0dfah
push bx ;bx=3026h
pop ax ...
阅读全文 |
评论次数(0) |
浏览次数(607) |
所属类型(汇编实验)
[2010-01-01 21:22] 实验2 用机器指令和汇编指令编程
实验任务:
(1)使用debug,将下面的程序段写入内存,逐条执行,根据指令执行后的实际情况填空。
MOV AX,FFFF
MOV DS,AX
MOV AX,2200
MOV SS,AX
MOV SP,0100
MOV AX,[0] ;AX=5BEAH
MOV AX,[2] ;AX=5CCAH
MOV BX,[4] ;BX=30F0H
MOV BX,[6] ;BX=2F38H
PUSH AX;SP=00FEH;修改的内存单元的地址是220FEH内容为5CCAH
PUSH BX;SP=00FCH;修改的内存单...
(1)使用debug,将下面的程序段写入内存,逐条执行,根据指令执行后的实际情况填空。
MOV AX,FFFF
MOV DS,AX
MOV AX,2200
MOV SS,AX
MOV SP,0100
MOV AX,[0] ;AX=5BEAH
MOV AX,[2] ;AX=5CCAH
MOV BX,[4] ;BX=30F0H
MOV BX,[6] ;BX=2F38H
PUSH AX;SP=00FEH;修改的内存单元的地址是220FEH内容为5CCAH
PUSH BX;SP=00FCH;修改的内存单...
阅读全文 |
评论次数(0) |
浏览次数(667) |
所属类型(汇编实验)
[2009-12-29 10:40] 8086/8088指令系统
一、8086/8088指令系统的功能
1.数据传送
2.算术运算
3.逻辑运算
4.串操作
5.程序控制
6.处理器控制
说明:对于每一条指令程序员应该注意一下几个方面的内容
a.指令的功能
b.适用于指令的操作数寻址方式
c.指令对标志位的影响
d.指令的长度与执行时间
二、指令功能详解
1.MOV DST,SRC
该指令是数据传送指令,此指令的功能是把一个字或者一个字节从源操作数SRC送至目的操作数DST中,该指令对标志位没有影响。
具体的功能:
(1)cpu内部寄存器之间的数据传送,如:
MOV AH,BH ;8位的寄存器数据传送
MOV AX,BX ...
1.数据传送
2.算术运算
3.逻辑运算
4.串操作
5.程序控制
6.处理器控制
说明:对于每一条指令程序员应该注意一下几个方面的内容
a.指令的功能
b.适用于指令的操作数寻址方式
c.指令对标志位的影响
d.指令的长度与执行时间
二、指令功能详解
1.MOV DST,SRC
该指令是数据传送指令,此指令的功能是把一个字或者一个字节从源操作数SRC送至目的操作数DST中,该指令对标志位没有影响。
具体的功能:
(1)cpu内部寄存器之间的数据传送,如:
MOV AH,BH ;8位的寄存器数据传送
MOV AX,BX ...
阅读全文 |
评论次数(0) |
浏览次数(1178) |
所属类型(汇编知识总结)
[2009-12-04 00:44] 检测点3.2
(1)
MOV AX,2000H
MOV SS,AX
MOV SP,0010H
(2)
MOV AX,1000H
MOV SS,AX
MOV SP,0000H...
MOV AX,2000H
MOV SS,AX
MOV SP,0010H
(2)
MOV AX,1000H
MOV SS,AX
MOV SP,0000H...
阅读全文 |
评论次数(9) |
浏览次数(956) |
所属类型(汇编作业)
[2009-12-04 00:08] 检测点3.1
(1)下面的程序执行前,AX=0,BX=0,写出每条指令执行完后相关的寄存器的值。
mov ax,1
mov ds,ax
mov ax,[0000] AX=2662H
mov bx,[0001] BX=0E626H
mov ax,bx AX=0E626H
mov ax,[0000] AX=2662H
mov bx,[0002] BX=0D6E6H
add ax,bx AX=0FD48H
add ax,[0004] AX=2C14H
mov ax...
mov ax,1
mov ds,ax
mov ax,[0000] AX=2662H
mov bx,[0001] BX=0E626H
mov ax,bx AX=0E626H
mov ax,[0000] AX=2662H
mov bx,[0002] BX=0D6E6H
add ax,bx AX=0FD48H
add ax,[0004] AX=2C14H
mov ax...
阅读全文 |
评论次数(2) |
浏览次数(903) |
所属类型(汇编作业)
[2009-11-30 23:42] 实验1 查看CPU内存,用机器指令和汇编指令编程
查看自己主板的生产日期,并试图改变
1.预备知识:debug的使用
(1)什么是debug?
debug是dos,windows都提供的实模式(8086方式)程序的调试工具。使用它可以查看CPU各种寄存器的内容,内存的情况和在机器码级跟踪程序的运行。
(2)我们用到的debug的功能
·用debug的r命令查看,改变CPU寄存器的内容
·用debug的d命令来查看内存中的内容
·用debug的e命令来改写内存中的内容
·用debug的u命令将内存中的机器码翻译成汇编指令
·用debug的t命令来执行一条机器指令
·用debug的a命令来汇编指令的格式在内存中写入一条机器指令...
1.预备知识:debug的使用
(1)什么是debug?
debug是dos,windows都提供的实模式(8086方式)程序的调试工具。使用它可以查看CPU各种寄存器的内容,内存的情况和在机器码级跟踪程序的运行。
(2)我们用到的debug的功能
·用debug的r命令查看,改变CPU寄存器的内容
·用debug的d命令来查看内存中的内容
·用debug的e命令来改写内存中的内容
·用debug的u命令将内存中的机器码翻译成汇编指令
·用debug的t命令来执行一条机器指令
·用debug的a命令来汇编指令的格式在内存中写入一条机器指令...
阅读全文 |
评论次数(4) |
浏览次数(965) |
所属类型(汇编实验)
[2009-11-30 22:10] 第一章学习心得
其实我并不是计算机专业的,我学习汇编的目的很简单,就是希望通过对汇编语言的学习,达到自己能过写一些属于自己的程序,能过用汇编语言的来表达自己的思想。
当然,我们专业并不专门开设汇编语言的这门课程,只是在微机原理中简单的介绍汇编语言,为以后的单片机,以及ARM的学习做好准备。刚刚接触汇编时觉得汇编有点枯燥,很大程度在考验自己的记忆力以及耐心。我们班的很多同学因此对汇编不感兴趣,加之课时有限老师讲的也挺快的所以几乎没几个在真正的学习汇编。
同样接触汇编我也有同样的想法,枯燥啊,不好玩啊,但是我并没有放弃对汇编的学习,虽然很多东西还是不懂,理解不透切,但是说句实话几乎也没有几个人能真...
当然,我们专业并不专门开设汇编语言的这门课程,只是在微机原理中简单的介绍汇编语言,为以后的单片机,以及ARM的学习做好准备。刚刚接触汇编时觉得汇编有点枯燥,很大程度在考验自己的记忆力以及耐心。我们班的很多同学因此对汇编不感兴趣,加之课时有限老师讲的也挺快的所以几乎没几个在真正的学习汇编。
同样接触汇编我也有同样的想法,枯燥啊,不好玩啊,但是我并没有放弃对汇编的学习,虽然很多东西还是不懂,理解不透切,但是说句实话几乎也没有几个人能真...
阅读全文 |
评论次数(0) |
浏览次数(754) |
所属类型(汇编学习心得)
[2009-11-29 23:48] 检测点2.3
下面的3条指令执行后,CPU几次修改IP?都是什么时候修改?最后IP的值是多少?
MOV AX,BX
SUB AX,AX
JMP AX
解答:
MOV AX,BX
SUB AX,AX
jmp AX
第一次是在把指令MOV AX,BX 装入指令缓冲寄存器后改变ip的值,让ip指向下一条指令sub,第二次修改在把指令SUB AX,AX装入指令缓冲寄存器后,第三次在把指令jmp装入指令缓冲寄存器后,第四次让(IP)=(AX)
检讨:首先我是做错了的,当然现在至少我认为是是对的,主要是对课本的问题2.3的分析没有仔细的研究,没仔细看一下就过去了,以后不能放过肯本中的任何细...
MOV AX,BX
SUB AX,AX
JMP AX
解答:
MOV AX,BX
SUB AX,AX
jmp AX
第一次是在把指令MOV AX,BX 装入指令缓冲寄存器后改变ip的值,让ip指向下一条指令sub,第二次修改在把指令SUB AX,AX装入指令缓冲寄存器后,第三次在把指令jmp装入指令缓冲寄存器后,第四次让(IP)=(AX)
检讨:首先我是做错了的,当然现在至少我认为是是对的,主要是对课本的问题2.3的分析没有仔细的研究,没仔细看一下就过去了,以后不能放过肯本中的任何细...
阅读全文 |
评论次数(3) |
浏览次数(966) |
所属类型(汇编作业)
[2009-11-29 22:48] 检测点2.2
(1)给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为00010H~1000FH.
(2)有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件为:最小为1001H,最大为2000H.
提示,反过来思考一下,当段地给定多少时,CPU,无论怎么变化偏移地址都无法寻到20000H单元?
解答:当段地址大于2000H或者小于1001H时无法找到20000H单元。...
(2)有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件为:最小为1001H,最大为2000H.
提示,反过来思考一下,当段地给定多少时,CPU,无论怎么变化偏移地址都无法寻到20000H单元?
解答:当段地址大于2000H或者小于1001H时无法找到20000H单元。...
阅读全文 |
评论次数(1) |
浏览次数(693) |
所属类型(汇编作业)
『 查看更多文章 』