第三章3 单片机-汇编语言程序设计例题
- 格式:ppt
- 大小:450.50 KB
- 文档页数:48
3·1 汇编指令第3 章MCS 一51 系列单片机的指令系统和汇编语言程序3·1·1 请说明机器语言、汇编语言、高级语言三者的主要区分,进一步说明为什么这三种语言缺一不行。
3·1·2 请总结:(1)汇编语言程序的优缺点和适用场合。
(2)学习微机原理课程时,为什么肯定要学汇编语言程序?3·1·3MCS 一51 系列单片机的寻址方式有哪儿种?请列表分析各种寻址方式的访问对象与寻址范围。
3·1·4 要访问片内RAM,可有哪几种寻址方式?3·1·5 要访问片外RAM,有哪几种寻址方式?3·1·6 要访问ROM,又有哪几种寻址方式?3·1·7 试按寻址方式对MCS 一51 系列单片机的各指令重进展归类(一般依据源操作数寻址方式归类,程序转移类指令例外)。
3·1·8 试分别针对51 子系列与52 子系列,说明MOV A,direct 指令与MOV A,@Rj 指令的访问范围。
3·1·9 传送类指令中哪几个小类是访问RAM 的?哪几个小类是访问ROM 的?为什么访问ROM 的指令那么少?CPU 访问ROM 多不多?什么时候需要访问ROM?3·1·10 试绘图示明MCS 一51 系列单片机数据传送类指令可满足的各种传送关系。
3·1·11 请选用指令,分别到达以下操作: (1)将累加器内容送工作存放器R6.(2)将累加器内容送片内RAM 的7BH 单元。
(3)将累加器内容送片外RAM 的7BH 单元。
(4)将累加器内容送片外RAM 的007BH 单元。
(5)将ROM007BH 单元内容送累加器。
3·1·12 区分以下指令的不同功能:(l)MOV A,#24H 与MOV A.24H(2)MOV A,R0 与MOV A,@R0(3)MOV A,@R0 与MOVX A,@R03·1·13 设片内RAM 30H 单元的内容为40H;片内RAM 40H 单元的内容为l0H;片内RAM l0H 单元的内容为00H;(Pl)=0CAH。
汇编语言程序设计习题答案第一章. 习题1.1用降幂法和除法将下列十进制数转换为二进制数和十六进制数:(1) 369 (2) 10000 (3) 4095 (4) 32767答:(1) 369=1 0111 0001B=171H(2) 10000=10 0111 0001 0000B=2710H(3) 4095=1111 1111 1111B=FFFH(4) 32767=111 1111 1111 1111B=7FFFH1.2将下列二进制数转换为十六进制数和十进制数:(1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111答:(1) 10 1101B=2DH=45(2) 1000 0000B=80H=128(3) 1111 1111 1111 1111B=FFFFH=65535(4) 1111 1111B=FFH=2551.3将下列十六进制数转换为二进制数和十进制数:(1) FA (2) 5B (3) FFFE (4) 1234答:(1) FAH=1111 1010B=250(2) 5BH=101 1011B=91(3) FFFEH=1111 1111 1111 1110B=65534(4) 1234H=1 0010 0011 0100B=46601.4完成下列十六进制数的运算,并转换为十进制数进行校核:(1) 3A+B7 (2) 1234+AF (3) ABCD-FE (4) 7AB×6F答:(1) 3A+B7H=F1H=241(2) 1234+AFH=12E3H=4835(3) ABCD-FEH=AACFH=43727(4) 7AB×6FH=35325H=2178931.5下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。
(1) (-85)+76 (2) 85+(-76) (3) 85-76 (4) 85-(-76) (5) (-85)-76 (6) -85-(-76)答:(1) (-85)+76=1010 1011B+0100 1100B=1111 0111B=0F7H;CF=0;OF=0(2) 85+(-76)=0101 0101B+1011 0100B=0000 1001B=09H;CF=1;OF=0(3) 85-76=0101 0101B-0100 1100B=0101 0101B+1011 0100B=0000 1001B=09H;CF=0;OF=0(4) 85-(-76)=0101 0101B-1011 0100B=0101 0101B+0100 1100B=10100001B=0A1H;CF=0;OF=1(5) (-85)-76=1010 1011B-0100 1100B=1010 1011B+1011 0100B=0101 1111B=5FH;CF=0;OF=1(6) -85-(-76)=1010 1011B-1011 0100B=1010 1011B+0100 1100B=11110111B=0F7H;CF=0;OF=01.6下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的带符号数或无符号数时,它们所表示的十进制数是什么?(1) D8 (2) FF答:(1) D8H表示的带符号数为-40,D8H表示的无符号数为216;(2) FFH表示的带符号数为-1,FFH表示的无符号数为255。
第3章单片机的汇编语言与程序设计习题1.MCS-51单片机有哪几种寻址方式?适用于什么地址空间?答:MCS-51单片机有7种寻址方式:直接寻址、寄存器寻址、寄存器间接寻址、立即寻址、变址寻址、位寻址、相对寻址。
直接寻址方式:操作数的地址由指令直接给出,适用于片内RAM的所有地址空间;如MOV A,68HMOV A,PSW寄存器寻址方式:指令给出的是寄存器的编码,操作数在编码指定的寄存器中,适用于片内00H至1FH的32个字节,用R0,…,R7表示,通过PSW的RS1和RS0选择组号确定对应32个字节中的其中8个,还有累加器A,以及乘除法指令中的A和B寄存器,位寻址方式中的布尔累加器C;MOV A,R1MUL ABINC DPTR寄存器间接寻址方式:指令给出的是寄存器的编码,操作数地址在编码指定的寄存器中,适用于片内RAM的全部空间,其中52系列中的80H至FFH只能用寄存器间接寻址;如MOV A,@R0MOV A,@R1MOVX A,@DPTR立即寻址方式:操作数本身在指令中直接,给出适用于用8位立即数对片内RAM所有地址单元赋值,也可用16位立即数对DPTR赋值;如MOV A,#0E2HMOV DPTR,#2000H变址寻址方式:以DPTR或PC作为基地址寄存器,以累加器A作为变址寄存器,将基址寄存器与变址寄存器的内容相加形成操作数的实际地址的一种寻址方式,变址寻址方式适用于程序存储器ROM,仅有三条指令如下:MOVC A,@A+DPTRMOVC A,@A+PCJMP @A+DPTR位寻址方式:指令中直接给出操作数所在单元的位地址,适用于片内RAM 中地址20H至2FH中的16个字节中的128个位地址空间和80H至FFH中地址中可以被8整除的所有SFR中的每个位地址空间;如MOV C,7FHMOV F0,CMOV C,ACC.7相对寻址方式:为相对转移指令而设,指令中直接给出转移的相对偏移量,其转移目标在当前指令-128至+127字节范围内的地址空间。
;.《汇编语言程序设计》习题答案一、单项选择题(本大题共170 小题,每小题 2 分)1、在汇编语言程序中,对END 语句的叙述正确的是( C )。
A、END 语句是一可执行语句B、END 语句表示程序执行到此结束C、END 语句表示源程序到此结束D、END 语句在汇编后要产生机器码2、将DX 的内容除以 2 ,正确的指令是( C )A、DIV 2 B 、DIV DX,2C、SAR DX,1 D 、SHL DX,13、下列数值表达式和地址表达式中,错误的是( D )。
A、MOV A L,8*14+4 B 、MOV SI,OFFSET BUF+13C、MOV CX,NUM2-NUM1 D 、MOV CX,NUM2+NUM14、用来存放下一条将要执行的指令地址的寄存器是( B )A、SP B 、IP C 、BP D 、CS5、要使串处理从低地址向高地址进行,应把标志位置为( D )A、IF=1 B 、TF=0 C 、DF=1 D 、DF=06、设SS=2050H,SP=0140H,则栈顶存贮单元的物理地址是( A )A、20640HB、2063EHC、2063FH7、十进制数269 变换为十六进制数是( CD、21900H )。
A、10BB、10CC、10DD、10E8、8 位的微型计算机系统是以16 位来表示地址,则该微机系统有( C )个地址空间。
A、255B、65535C、65536D、10485769、8 位有符号二进制数能表示的最大十进制数是( D )。
A、256B、255C、128D、12710、十六进制数88H,可表示成下面几种形式,请找出错误的表示( D )。
A、无符号十进制数136B、带符号十进制数-120C、压缩型BCD十进制数88 D 、8 位二进制数-8 的补码表示A、二进制数B、八进制数C、十进制数D、四进制数12、7 位ASCII 总共可表示( C )个符号。
A、256B、127C、128D、25513、使用DOS功能调用时,子程序编号应放在( B )A、ALB、AHC、AXD、任意指定14、没有语法错误的输出指令是( B ) P76A、OUT AX,30HB、OUT D X,ALC、OUT AL,DXD、OUT 30H,AH15、用MOV指令将十进制数89 以非压缩BCD码格式送入AX,可使用的指令是( B )A、MOV AX,89B、MOV AX,0809HC、MOV AX,89HD、MOV AX,080916、设AX=8765H,DX=4321H,执行CWD指令后,DX中的内容是( B ) P117A、4321HB、0FFFFHC、8000HD、0001H17、设CL=05H,要获得CL=0AH,可选用的指令是( A )A、XOR CL,0FHB、NOT CLC、OR CL,0AHD、AND CL,0FH18、使状态标志位CF清零的错误指令是( C )A、OR AX,AX B 、SUB AX,AXC、MOV CF,0 D 、CLC19、设SP=1110H,执行PUSH AX指令后,SP 的内容为( B )A、SP=1112H B 、SP=110EH C 、SP=1111H D 、SP=110FH20、汇编源程序出现语法错误的指令有( D )A、MOV [BX+SI] ,AL B 、MOV AX,[BP+DI]C、MOV DS,AX D 、MOV CS,AX21、当执行指令ADD AX,BX 后,若AX 的内容为2BA0H,设置的奇偶标志位PF=1,下面的叙述正确的是(D )A、表示结果中含 1 的个数为偶数B、表示结果中含 1 的个数为奇数C、表示该数为偶数D、表示结果中低八位含 1 的个数为偶数22、下面指令中,合理而有意义的指令是( D )A、REP LODSB B 、REP SCASB C 、REP CMPSB D 、REP MOVSB23、在下列串操作指令中,同时使用源串和目的串地址指针的指令是( D )A、STOSW B 、LODSW C 、SCASW D 、CMPSW24、4B 的字长是( C )。
MCS—51单片机指令系统及程序设计一.单项选择题,从供选择的答案中选出正确的选项,并将标号填写到答题册中,每小题1分。
1.MCS-51汇编语言指令格式中,唯一不可缺少的部分是B。
A.标号 B.操作码 C.操作数 D.注释2.MCS-51的立即寻址方式中,立即数前面D。
A.应加前缀“/:”号B.不加前缀号C.应加前缀“@”号D.应加前缀“#”号3.下列完成8031单片机内部RAM数据传送的指令是D。
A.MOVX A,@DPTR B.MOVC A, @A+PCC.MOV A,#data D.MOV direct,direct4.MCS-51的立即寻址的指令中,立即数就是B。
A.放在寄存器R0中的内容 B.放在程序中的常数C.放在A中的内容D.放在B中的内容5.单片机中PUSH和POP指令常用来C。
A.保护断点B.保护现场C.保护现场,恢复现场 D.保护断点,恢复断点6.MCS-51寻址方式中,操作数Ri加前缀“@”号的寻址方式是A。
A.寄存器间接寻址 B.寄存器寻址 C.基址加变址寻址 D.立即寻址7.MCS-51寻址方式中,位寻址的寻址空间是 D 。
A.工作寄存器R0~R7 B.专用寄存器SFR C.程序存贮器ROMD.片内RAM的20H~2FH字节中的所有位和地址可被8整除的SFR的有效位8.MCS-51寻址方式中,直接寻址的寻址空间是D。
A.工作寄存器R0~R7 B.专用寄存器SFR C.程序存贮器ROM D.片内RAM 00H--7FH的128字节和80H--FFH中的SFR9.执行指令MOVX A,@DPTR时,、脚的电平为C。
A.高电平,高电平 B.低电平,高电平C.高电平,低电平 D.低电平,低电平10.主程序执行完ACALL后返回主程序后,堆栈指针SP的值A。
A.不变 B.加2 C.加4 D.减211.单片机中使用MOVX A,@R1指令 C 寻址数据存贮器1050H单元。
A.能直接B.不能C.与P2口配合能 D.与P1口配合能12.下列指令判断若P1口最低位为高电平就转LP,否则就执行下一句的是B。
思考题:【3-1】汇编语言与C语言哪种语言的可读性和可移植性强?在对速度和时序敏感的场合应该使用什么语言?对于复杂的单片机系统一般采用C与汇编混合编程的形式这句话对吗?【3-2】二进制机器语言与C和汇编语言两者之间是什么关系?用C或汇编编制的程序在ROM中是以编译后的二进制代码的形式存放这句话对吗?【3-3】80C51系列单片机指令的格式包含哪几个部分?各部分之间的间隔符是什么?四个部分中哪个部分是必须存在的,哪几个部分是可有可无的?标号的格式和代表的意义是?【3-4】80C51系列单片机有哪几种寻址方式?【3-5】80C51单片机中立即数是存放在ROM中还是RAM中?【3-6】判断下列说法是否正确。
(1)立即数寻址方式是被操作的数据本身就在指令中,而不是它的地址在指令中。
()(2)指令周期是执行一条指令的时间。
()(3)指令中直接给出的操作数称为直接寻址。
()(4)内部寄存器Rn(n=0~7)可作为间接寻址寄存器。
()【3-7】80C51单片机可以进行直接寻址的区域是?【3-8】80C51单片机可以进行寄存器寻址的范围是?【3-9】80C51单片机可以进行寄存器间接寻址的寄存器是?寻址的范围是?【3-10】在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的()。
【3-11】80C51单片机变址寻址方式中可以作基址的寄存器是?可以作变址的寄存器是?@A+PC,@A+DPTR所找到的操作数是在ROM中对吗?【3-12】80C51单片机相对寻址改变的是PC的当前值,即改变的CPU执行指令的顺序这句话对否?【3-13】若访问特殊功能寄存器,只可以采用那种寻址方式?【3-14】若访问外部RAM单元,只可以使用哪种寻址方式?【3-15】若访问内部RAM单元,可使用哪些寻址方式?【3-16】若访问内外程序存储器,可使用哪些寻址方式?【3-17】80C51单片机可以进行位寻址的字节单元范围除11个可位寻址的特殊功能寄存器外还包括哪个区域?分别找出位地址是00H、08H、22H、7FH、D0H、E0H对应的字节地址?【3-18】已知(30H)=40H,(40H)=10H,(10H)=32H,(P1)=0EFH,试写出执行以下程序段后有关单元的内容。