[汇编语言如何学习]本人虽然汇编不是学得很好,也不想往硬件发展,但一些基本的语法知识还是知道一些的,希望能帮到你。 1、凡是程序设计的东西,必定要上机操作,验证语法的工作原理,比如:SAR AX,01H和SH...+阅读
我也学习单片机寻址有很多方式:(举几个例子给你吧)
1. 寄存器寻址
寄存器寻址就是操作数存放在寄存器中,指令中指定的寄存器的内容就是操作数。
2. 直接寻址
直接寻址方式就是在指令中直接给出操作数所在存储单元的地址。此时,指令中操作数部分是操作数所在地址。
3. 立即数寻址
立即数寻址就是操作数在指令中直接给出,或者说指令操作码后面立即给出一字节或两字节操作数
4. 寄存器间接寻址
寄存器间接寻址是把指定寄存器的内容作为操作数地址,该地址所指定的单元内容作为操作数。
为了区分寄存器寻址和寄存器间接寻址,在寄存器间接寻址中,所用到的寄存器的前面要加间接寻址符“”。
例:寄存器R0内容为30H,片内RAM 30H单元的内容为45H。
解:指令“MOV A,R0”的功能是将R0的内容30H传送给累加器A,指令执行结果是累加器A中的内容为30H。
指令“MOV A,R0”的功能是将R0的内容30H作为操作数的地址,根据这一地址找到内部RAM 30H单元,将其内容45H传送至累加器A,指令执行结果是累加器A中内容为45H。
5. 变址寻址(基址寄存器+变址寄存器间接寻址)
例如:指令“MOVC A,A+DPTR”是变址寻址。
解:假设DPTR的内容为2030H,累加器A的内容为12H。
该指令的功能是将2030H和12H相加,得到2042H作为操作数地址,在程序存储器中找到2042H单元,将其内容送至累加器A。
6. 相对寻址
例如:在程序存储器中2000H单元有一条双字节的相对转移指令“SJMP 75H”。
解:程序存储器2000H、2001H单元的内容80H、75H是“SJMP 75H”的机器语言代码。
延伸阅读:
学习51单片机如何起步新手学习单片机,往往感觉到不好入门,无从下手。学习单片机过程,是一项理论与实践并重的过程,只看书不实践,或是只重视模仿,不重视理论的学习,是无法学习好单片机的,单片机的学习需要...
怎样学习51单片机学习郭天祥的《十天学会单片机视频教程》,熟悉一点模电,数电方面的知识,再找几本C语言相关的书籍,C是学习单片机的重中之重,比如 1. 如果要学C语言基本知识请看 谭浩强写的《C程...
汇编实现两个字符串中的数值相加后显示结果老师给的作业急其实不会很复杂,可以人性化的理解.就好比你在纸张上做这个运算一摸一样. 1200 +1345 ----- 2545 看明白了吗?就是先取这个字符串的最后一个字符.因为是ASCII码,所以直接减去30H...
零基础如何去学习汇编语言1:如果你能够熟练的使用Windows的话,你就可以开始你的程序生涯了! 2:首先从C语言开始。有的朋友可能认为C语言太难了,应该从VB开始。虽然,对于一个初学者来说,用一些控件堆砌成一个...
想学习单片机汇编语言怎样学入门比较快呢1、需要先熟悉电路尤其是数字电路知识。 2、明白常规的数制:主要是2进制和16进制。 3、理解常规概念:比如时钟、时钟周期,工作时序等;还需要懂得地址、寻址、PC等常规概念。 4、...
单片机编程学习步骤学习单片机入手的时候最好不从C开始,那样的话对单片机硬件资源的理解会受到限制和影响,还是先学汇编较好。推荐两本书《MCS-51/96系列单片机原理及应用》《51单片机C语言完全...
汇编大作业求助假设w1=5000,b1=5,b2=5,w2=30000 data segment w1 dw 5000 b1 db 5 b2 db 5 w2 dw 30000 data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mo...
我想知道怎么学习汇编找一本书啃两三个星期,当然边啃边编程,如果做点笔记(电子档的就可以了)的话效果更好。找一本适合自己的书,初学者的话尽量不要找那种一开始什么都没讲,就给你来几段代码的书。那样...
最近学习MSP430单片机用16M的晶体振荡器怎么产生精准的8M时钟据我所知: 一个时钟周期=MCLK 晶振的倒数。如果MCLK是8M,则一个时钟周期为1/8us; 一个机器周期 =一个时钟周期,即430每个动作都能完成一个基本操作; 一个指令周期 = 1~6个机器周...