判断题(指令正误)
判断题(指令正误)

1、指出下面指令正误,对错误指令说明错误原因(1)MOV DS ,100×立即数不能直接送到段寄存器(2)MOV [1200H] , 23H×目的操作数不能确定是字节属性还是字属性等(3)MOV [1000H] , [2000H] ×存储器之间不能直接传送数据(4)MOV 1020H , CX×立即数不能作为目的操作数(5)MOV AX , [BX+BP+0100H] ×目的操作数的寻址方式错误BX和BP都是基址寄存器(6)MOV CS , AX×不能直接对CS赋值(7)PUSH AL×PUSH操作对象是字属性(8)OUT CX , AL×在OUT指令中用DX寄存器存放端口地址而不是CX (9)IN AL , [80H]×在IN指令中端口直接表示时,不加[] (10)MOV CL , 3300H×3300H数太大,AL寄存器不能存放(11)MOV DS , ES×段寄存器之间不能直接传送数据(12)MOV IP , 2000H×IP寄存器不能直接赋值,不能使用MOV指令(13)POP CS×POP指令不能使用CS寄存器,不能向CS寄存器中赋值2、已知3个变量的数据定义如下所示,分析给定的指令是否正确,有错误时加以改正。
DATA SEGMENTV AR1 DB ?V AR2 DB 10V AR3 EQU 100DATA ENDS(1)MOV V AR1 , AX×源操作数和目的操作数类型不匹配(2) MOV V AR3 , AX×V AR3是一个常量,值不变,不能赋值(3)MOV BX , V AR1MOV [BX] , 10×源操作数和目的操作数类型不匹配(4)CMP V AR1 , V AR2×存储器之间不能直接传送数据(5)V AR3 EQU 20×EQU不能重复定义3、设V AR1和V AR2为字变量,LAB为标号,分析下列指令错误之处,并加以改正(1)ADD V AR1 , V AR2×2个数都是存储器操作数,不能直接放在指令中,指令要求必须有一个是寄存器操作数(2)MOV AL , V AR2×源操作数和目的操作数类型不匹配(3)SUB AL , V AR1×源操作数和目的操作数类型不匹配(4)JMP LAB[SI] ×标号LAB位于代码段,[SI]位于数据段,两个不同的段,LAB[SI]不能确定是代码段还是数据段(5)JNZ V AR1×JNZ指令的操作数应该是标号(6)JMP NEAR LAB×正确指令是JMP NEAR PTR LAB4、说明下面指令哪些需要加PTR伪操作。
单片机第3章习题答案

第3章习题答案一、选择题1.在中断服务程序中,至少应该有一条( D )。
(A)传送指令(B)转移指令(C)加法指令(D)中断返回指令2.要用传送指令访问MCS-51片外RAM,它的指令操作码助记符应是( C )。
(A)MOV (B)MOVC (C)MOVX (D)以上都行3.JNZ rel指令的寻址方式是( C )。
(A)立即寻址(B)寄存器寻址(C)相对寻址(D)位寻址4.执行LCALL 1020H指令时,MCS-51所完成的操作是( D )。
(A)保护PC (B)PC←1020H(C)保护现场(D)PC+3入栈,PC←1020H5.下面哪条指令产生WR信号( D )。
(A)MOVX A,@DPTR (B)MOVC A,@A+PC(C)MOVC A,@A+DPTR (D)MOVX @DPTR,A6.在执行PUSH ACC指令时,MCS-51完成的操作是( A )。
(A)(SP)←(SP)+1,((SP))←(ACC)(B)(SP)←(ACC),((SP))←(SP)-1(C)(SP)←(SP)-1,((SP))←(ACC)(D)((SP))←(ACC),(SP)←(SP)+17.MCS-51执行完MOV A,#08H后,PSW的哪一位被置位( D )。
(A)C (B)F0 (C)OV (D)P8.指令AJMP的跳转范围是( C )。
(A)256B (B)1KB (C)2KB (D)64KB9.在寄存器间接寻址方式中,指定寄存器中存放的是( B )。
(A)操作数(B)操作数地址(C)转移地址(D)地址偏移量10.执行返回指令时,返回的断点是( C )。
(A)调用指令的首地址(B)调用指令的末地址(C)调用指令下一条指令的首地址(D)返回指令的末地址二、填空题:1.8051指令基本格式由标号、操作码助记符、操作数和注释组成。
2.MOV A,20H源寻址方式为直接寻址。
3.执行ANL A,#0FH指令后,累加器A的高4位=0000B 。
《单片机原理与应用》期中试卷答案

《单⽚机原理与应⽤》期中试卷答案《单⽚机原理与应⽤》期中考试试卷答案⼀、填空题(13分) 1、 MCS -51单⽚机程序存储器的寻址范围是由程序计数器PC 的位数所决定的,因为MCS -51的PC 是16位的,因此其寻址的范围为( 64 )KB 。
2、通过堆栈操作实现⼦程序调⽤,⾸先要把( PC )的内容⼊栈,以进⾏断点保护。
调⽤返回时在进出栈操作,把保护的断点送回( PC )。
3、如果⼿中仅有⼀台⽰波器,可通过观察( ALE )引脚的状态,来⼤致判断MCS -51单⽚机正在⼯作。
4. 8051复位后,PC= ( 00H )。
若希望从⽚内存储器开始执⾏,EA 脚应接(⾼)电平,PC 值超过( 4k )时,8051会⾃动转向⽚外存储器继续取指令执⾏。
4、 8051的定时器/计数器是(加) [加或减]计数的。
5、在位操作中,能起到与字节操作中累加器作⽤的是( Cy )6、假定DPTR 的内容为8100H ,累加器A 的内容为40H ,⾏下列命令: MOVC A ,@A+DPTR后,送⼊A 的是程序存储器( 8140H )单元的内容。
7、指令格式是由(操作码)和(操作数)所组成,也可能仅由(操作码)组成。
⼆、选择题(7分)1、相对程序存储器的读操作,只能使⽤ D (A )MOV 指令(B )PUSH 指令(C )MOVX 指令(D )MOVC 指令 2、在MCS-51中 C(A )具有独⽴的专⽤的地址线(B )由P0⼝和P1⼝的⼝线作地址线(C )由P0⼝和P2⼝的⼝线作地址线(D )由P1⼝和P2⼝的⼝线作地址线3、以下各项中不能⽤来对内部数据存储器进⾏访问的是A(A )数据指针DPTR (B )按存储单元地址或名称(C)堆栈指针SP (D)由R0或R1作间址寄存器4、假定(A)=83H,(R0)=17H,(17H)=34H,执⾏以下程序段ANL A,#17HORL 17H,AXRL A,@R0CPL A后,A的内容为 A(A)CBH (B)03H (C)EBH (D)C8H5、下列有关MCS—51中断优先级控制的叙述中错误的是D(A)低优先级不能中断⾼优先级,但⾼优先级能中断低优先级(B)同级中断不能嵌套(C)同级中断请求按时间的先后顺序响应(D)同时同级的多中断请求,将形成阻塞,系统⽆法响应6、在下列寄存器中,与定时/计数控制⽆关的是C(A)TCON(定时控制寄存器)(B)TMOD(⼯作⽅式控制寄存器)(C)SCON(串⾏控制寄存器)(D)IE(中断允许控制寄存器)7、PC的值是CA、当前正在执⾏指令的前⼀条指令的地址B、当前正在执⾏指令的地址C、当前正在执⾏指令的下⼀条指令的地址D、控制器中指令寄存器的地址三、判断题(10分)判断下列指令的正误1)MOV 28H,@R2 错2)DEC DPTR 错3)INC DPTR 对4)CLR R0 错5)CPL R5 错6)MOV R0,R1 错7)PUSH DPTR 错8)MOV F0,C 对9)MOV C,30H 对10)RLC R0 错四、简答题(15分)1、 MCS-51单⽚机的EA 信号有何功能?在使⽤8031时EA 信号引脚应如何处理?答:EA 为内外程序存储器选择控制EA=1,访问⽚内程序存储器,EA=0,单⽚机则只访问外部程序存储器。
微机原理试题汇编重点练习题

微机原理试题汇编重点练习题汇编练习题一、选择题1.下列数中最大的数是()。
A.(10000011)2B.(92)16C.(10010101)BCD D.(164)82.设[X]补=11100001,[Y]补=11111000,采用补码运算,求得[X-Y]补的结果是()。
A.10010111B.11101001C.10100111D.110110013.指令指针(IP)中存放的是()。
A.操作数B.操作码C.指令D.指令地址4.设A=186,B=273Q,C=OBBH,它们之间的关系是()。
A. A>B>CB. A<b<c< bdsfid="73" p=""></b<c<>C. A=B=CD. A< bdsfid="76" p=""><>5.下列指令中,格式正确的是()。
A.MOV AX,CL B.MOV SS,5000HC.MOV ES:ARRAY[BX][SI],AL D.MOV CS,DS6.下列四条指令都可用来使累加器清零,但其中不能清进位位CF的是________ A.XOR AL,AL B.AND AL,0C.MOV AL,0 D.SUB AL,AL7.设AX中有一带符号数8520H,执行SAR AX,1指令后,AX 中的值是()A.4290HB.0A40HC.0C290HD.0C260H8.当AH为0FH时,下列四组指令中能正确转到NEXT的有()组。
TEST AH,0FH XOR AH,0FHJZ NEXT;JZ NEXT;CMP AH,0FH SUB AH,0FHJZ NEXT;JZ NEXTA.1B.2C.3D.49. 下列中指令执行后,能影响标志位的指令是()A.PUSHFB.POPFC.JNLE OPRD.LOOPZ LOP10. 设DL=55H,执行指令后能使DL中的数据为0AAH的指令是()A.TEST DL,OAAHB. OR DL,OAAHC.NEG DLD. XOR DL,OFFH二、填空题1.写出下列指令序列中每条指令的执行结果MOV BX, 23ABH BX=______________ADD BL, 0ACH BX=______________MOV AX, 23F5H AX=______________ADD BH, AL BX=______________SBB BX, AX BX=______________ADC AX, 12H AX=______________SUB BH, -9 BX=______________2.3.填写相应的指令:传送15H到AL寄存器________________将AL的内容乘以2___________________传送10H到BL寄存器________________AL的内容乘BL的内容________________4.假定(BX)=11100011B,变量VALUE的值为01111001B,确定下列各条指令单独执行后的结果(1) XOR BX,VALUE __________________(2) AND BX,VALUE __________________(3) OR BX,VALUE ___________________(4) XOR BX,11111111B ___________________5.假设(SS)=25A3H,(SP)=01A0H,如果执行8次PUSH AX指令,则栈顶物理地址为__________,随后又执行了三次POP BX 指令,则栈顶的物理地址为__________。
(完整版)单片机原理及应用(第三版)张毅刚课后习题答案完整版

第 1 章思考题及习题 1 参考答案一、填空1. 除了单片机这一名称之外,单片机还可称为或。
答:微控制器,嵌入式控制器 .2. 单片机与普通微型计算机的不同之处在于其将、、和三部分,通过内部连接在一起,集成于一块芯片上。
答: CPU、存储器、 I/O 口、总线3. AT89S52 单片机工作频率上限为MHz 。
答: 33 MHz。
4. 专用单片机已使系统结构最简化、软硬件资源利用最优化,从而大大降低和提高。
答:成本,可靠性。
二、单选1.单片机内部数据之所以用二进制形式表示,主要是A.为了编程方便B.受器件的物理性能限制C.为了通用性D.为了提高运算速度答: B2. 在家用电器中使用单片机应属于微计算机的。
A.辅助设计应用B.测量、控制应用C.数值计算应用D.数据处理应用答: B3.下面的哪一项应用,不属于单片机的应用范围。
A.工业控制 B .家用电器的控制 C .数据库管理 D .汽车电子设备答: C三、判断对错1.STC 系列单片机是 8051 内核的单片机。
对2.AT89S52 与 AT89S51相比,片内多出了 4KB的 Flash 程序存储器、 128B 的 RAM、1个中断源、 1 个定时器(且具有捕捉功能)。
对3.单片机是一种 CPU。
错4.AT89S52 单片机是微处理器。
错5. AT89C52 片内的 Flash 程序存储器可在线写入,而AT89S52则不能。
错6. 为 AT89C51单片机设计的应用系统板,可将芯片AT89C51直接用芯片 AT89S51替换。
对7. 为 AT89S51单片机设计的应用系统板,可将芯片AT89S51直接用芯片 AT89S52替换。
对8. 单片机的功能侧重于测量和控制,而复杂的数字信号处理运算及高速的测控功能则是DSP 的长处。
对四、简答1.微处理器、微计算机、微处理机、 CPU、单片机、嵌入式处理器它们之间有何区别?答:微处理器、微处理机和 CPU它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机。
微机原理与接口技术习题答案3

第3章8086CPU指令系统1.写出完成下列要求的变量定义语句:(1)在变量var1中保存6个字变量:4512H,4512,-1,100/3,10H,65530;(2)在变量var2中保存字符串:’BYTE’,’word’,’WOR’D;(3)在缓冲区buf1中留出100个字节的存储空间;(4)在缓冲区buf2中,保存5个字节的55H,再保存10个字节的240,并将这一过程重复7次;(5)在变量var3中保存缓冲区buf1的长度;(6)在变量pointer中保存变量var1和缓冲区buf1的偏移地址。
解:var1DW4512H,4512,-1,100/3,10H,65530var2DB’BYTE’,’word’,’WORD’buf1DB100DUP(?)buf2DB7DUP(5DUP(55H),10DUP(240))var3DBLENGTHbuf1pointerDWvar1,buf1(或者pointerDWOFFSETvar1,OFFSETbuf1)2.设变量var1的逻辑地址为0100:0000,画出下列语句定义的变量的存储分配图:var1DB12,-12,20/6,4DUP(0,55H)var2DB‘Assemble’var3DW‘AB’,‘cd’,‘E’var4DWvar2var5DDvar2解:3.指令正误判断,对正确指令写出源和目的操作数的寻址方式,对错误指令指出原因(设VAR1,VAR2为字变量,L1为标号):(1)MOVSI,100(2)MOVBX,VAR1[SI](3)MOVAX,[BX](4)MOVAL,[DX](5)MOVBP,AL(6)MOVVAR1,VAR2(7)MOVCS,AX(8)MOVDS,0100H(9)MOV[BX][SI],1(10)MOVAX,VAR1+VAR2(11)ADDAX,LENGTHVAR1(12)ORBL,TYPEVAR2(13)SUB[DI],78H(14)MOVSVAR1,VAR2(15)PUSH100H(16)POPCS(17)XCHGAX,ES(18)MOVDS,CS(19)JMPL1+5(20)DIVAX,10(21)SHLBL,2(22)MOVAL,15+23(23)MULCX(24)XCHGCL,[SI](25)ADCCS:[0100],AH(26)SBBVAR1-5,154解:(1)MOVSI,100正确。
微机原理与接口技术的期末试题与答案

微机原理与接⼝技术的期末试题与答案微机原理与接⼝技术的期末试题与答案⼀、单项选择题1.下列指令正确的是[ B]A.CMP [SI],100B.CMP WORD PTR [SI],100C.CMP [SI],100hD.CMP 100h,[SI]2.下列指令正确的是[D ]A.MOV CX,ALB.MOV DS,200hC.MOV DS,CSD.MOV DS,AX3.下列指令正确的是[A ]A.POP WORD PTR [BX]B.POP BLC.POP IPD.POP CS4.下列指令正确的是[C ]A.IN DX,ALB.IN DX,AXC.IN AX,DXD.IN BX,DX5.DF=1,执⾏MOVSB指令后[A ]A.SI减1,DI减1B.SI加1,DI加1,CX减1C.SI减1,DI减1,CX减1D.SI加1,DI加1,CX加16.Intel 8086 I/O寻址空间为[C ]A.1MBB.1KBC.64KBD.32KB⼆、填空题1.⼆进制数10101001转换为10进制数为169 D转换为16进制数为A9 H1.在移位指令中,⽤于指定移位位数的操作数只⽤的寄存器是___CL_____。
2.内存0005CH处4个字节为D2,EF,00,F0,它是中断__17H______的⼊⼝地址存放处,它表⽰该中断处理程序的起始地址为_F000H___ :__EFD2H___。
解析:因为中断类型号和中断向量表中的对应物理地址由倍数4的关系,所以0005CH/4=17h,即得类型号。
3.⼀条指令为MOV BX,X1,其中X1的偏移地址为16 (⼗进制)。
在DEBUG 下,此指令会变为MOV BX,__[0010]______。
4.指令MOV AL, BYTE PTR [BX+SI]中,源操作数的寻址⽅式是基址变址寻址⽅式5.设CF=0,AX=8000H,执⾏ROR AX,1后,AX=_4000H___,CF=_____0_________。
单片机考试试题和答案(5)

1、EA :内外程序存储器选择控制端。
输入高电平,CPU访问内部程序存储器(4K)。
PC值超过0FFFH时,将自动执行片外程序存储器的程序。
输入低电平,CPU仅访问片外程序存储器。
注意:对于8031来说此脚必须接地。
因为8031没有程序存储器2、时钟周期(振荡周期) 时钟周期是计算机中最基本的、最小的时间单位。
它定义为时钟脉冲频率的倒数。
CPU完成这每一个基本操作所需的时间定义为机器周期。
指令周期定义:执行一条指令所需的时间。
MCS-51的指令周期一般只有1—2个机器周期,只有乘、除两条指令占4个机器周期。
当用12MHz晶体作主振频率时,执行一条指令的时间,也就是一个指令周期为1us、2us及4us。
3、单片机作为微型机的一个主要分支,在结构上的最大特点就是把CPU、存储器、定时器和多种输入输出接口电路集成在一块超大规模集成电路芯片上。
4、【例5.4】用定时器T1的方式2对外部计数,要求每计满100个数,将P1.0引脚信号求反. 解:P3.5引脚输入外部信号,每发生1次负跳变计数器加1,每输入100个脉冲,计数器溢出中断,将P1.0引脚求反.ORG 0000HLJMP MAINORG 001BHCPL P1.0RETIORG 0100HMAIN: MOV TMOD,#60HMOV T L1,#9CHMOV T H1,#9CHSETB TR1SETB ET1SETB EAHERE: AJMP HERE5、例7:程序名:MAX功能:查找内部RAM中无符号数据块的最大值入口参数:R1指向数据块的首地址,数据块长度存放在工作寄存器R2中出口参数:最大值存放在累加器A中占用资源:R1,R2,A,PSWMAX: PUSH PSWCLR A ;清A作为初始最大值LP: CLR C ;清进位位SUBB A,@R1 ;最大值减去数据块中的数JNC N EXT ;小于最大值,继续MOV A,@R1 ;大于最大值,则用此值作为最大值SJMP NEXT1NEXT: ADD A,@R1 ;恢复原最大值NEXT1: INC R1 ;修改地址指针DJNZ R2,LPPOP P SWRET一、填空题(37分)1、8031单片机芯片共有 40个引脚,MCS-51系列单片机为8 位单片机。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、指出下面指令正误,对错误指令说明错误原因
(1)MOV DS ,100×立即数不能直接送到段寄存器(2)MOV [1200H] , 23H×目的操作数不能确定是字节属性还是字属性等
(3)MOV [1000H] , [2000H] ×存储器之间不能直接传送数据(4)MOV 1020H , CX×立即数不能作为目的操作数
(5)MOV AX , [BX+BP+0100H] ×目的操作数的寻址方式错误BX和BP都是基址寄存器(6)MOV CS , AX×不能直接对CS赋值
(7)PUSH AL×PUSH操作对象是字属性(8)OUT CX , AL×在OUT指令中用DX寄存器存放端口地址而不是CX (9)IN AL , [80H]×在IN指令中端口直接表示时,不加[] (10)MOV CL , 3300H×3300H数太大,AL寄存器不能存放
(11)MOV DS , ES×段寄存器之间不能直接传送数据(12)MOV IP , 2000H×IP寄存器不能直接赋值,不能使用MOV指令
(13)POP CS×POP指令不能使用CS寄存器,不能向CS寄存器中赋值
2、已知3个变量的数据定义如下所示,分析给定的指令是否正确,有错误时加以改正。
DATA SEGMENT
V AR1 DB ?
V AR2 DB 10
V AR3 EQU 100
DATA ENDS
(1)MOV V AR1 , AX×源操作数和目的操作数类型不匹配(2) MOV V AR3 , AX×V AR3是一个常量,值不变,不能赋值
(3)MOV BX , V AR1
MOV [BX] , 10×源操作数和目的操作数类型不匹配
(4)CMP V AR1 , V AR2×存储器之间不能直接传送数据(5)V AR3 EQU 20×EQU不能重复定义
3、设V AR1和V AR2为字变量,LAB为标号,分析下列指令错误之处,并加以改正
(1)ADD V AR1 , V AR2×2个数都是存储器操作数,不能直接放在指令中,指令要求必须有一个是寄存器操作数
(2)MOV AL , V AR2×源操作数和目的操作数类型不匹配
(3)SUB AL , V AR1×源操作数和目的操作数类型不匹配
(4)JMP LAB[SI] ×标号LAB位于代码段,[SI]位于数据段,两个不同的段,LAB[SI]不能确定是代码段还是数据段
(5)JNZ V AR1×JNZ指令的操作数应该是标号
(6)JMP NEAR LAB×正确指令是JMP NEAR PTR LAB
4、说明下面指令哪些需要加PTR伪操作。
BV AL DB 10H , 20H
WV AL DW 1000H
(1)SUB [BX] , 2×目的操作数不能确定是字节属性还是字属性等
(2)MOV CL , WV AL×源操作数和目的操作数类型不匹配,正确指令是MOV CL , BYTE PTR WV AL
5、程序在数据段中定义的数组如下
NAMES DB ‘TOM.’
DB 20
DB ‘ROSE.’
DB 30
DB ‘KATE.’
DB 25
请指出下列指令是否正确,为什么
(2)MOV AX , NAMES×源操作数和目的操作数类型不匹配
(4)MOV BX , 6
MOV SI , 5
MOV AX , NAMES[BX][SI] ×类型不匹配,如果目的操作数变为AL正确
(5)MOV BX , 6*2
MOV SI , 5
MOV AX , OFFSET NAMES[BX][SI]
INC [AX] ×①在汇编过程中,OFFSET伪指令将得到变量的偏移值,但对于相对基址变址形成的值在汇编时值还未知②使用AX存放地址不对,但如果使用BX 存放地址,由于有第①个原因也是不对的
6、下面有4条等值语句
C1 EQU 1000
C2 EQU 1
C3 EQU 20000
C4 EQU 25000
下面指令哪些不对,请说明原因
(1)ADD AL , C1-C2×C1-C2的值是999,超出字节表示范围(4)SUB AH , C4-C3-C1 ×C4-C3-C1的值超出字节表示范围
7、分析下列指令正误,并加以改正
(1)MOV AH , BX×(2)MOV [BX] , [SI] ×
(3)MOV AX , [SI][DI] ×(4)MOV MYDAT[BX][SI] , ES:AX×
(5)MOV BYTE PTR [BX] , 1000×(7)MOV CS , AX×
(9)MOV AX,70
MUL 56 ×
8、下面哪些指令错误的?(假设OP1、OP2是已经用DB定义的变量)
(1)CMP 15 , BX×(2)CMP OP1 , OP2×(3)CMP AX , OP1×
9、假设V AR1和V AR2为字变量,LAB为程序中的一个标号,试找出指令错误之处
(1)ADD V AR1 , V AR2×存储器中2个数不能直接相加
(2)SUB AL , V AR1×类型不匹配
(3)JNZ V AR1×转移指令后应该存放标号
(4)JMP LAB[SI] ×[SI]是数据段中一个数,LAB是代码段中标号,LAB[SI]不能确定是数据段还是代码段
(5)JMP NEAR LAB×正确指令是JMP NEAR PTR LAB
10、对于下面符号的定义,指出下面指令的正误
A1 DB ?
A2 DB 10
K1 EQU 1024
(1)MOV K1 , AX×常量不能作为目的操作数(2)MOV A1 , AX×类型不匹配
(3)MOV BX , A1×类型不匹配
MOV [BX] , 1000×目的操作数[BX]对象是字节|字|双字,不确定
(4)CMP A1 , A2×存储器中2个数不能直接进行比较(5) K1 EQU 2048×EQU不能重复定义
11、指出下面伪指令表达式的错误,并改正之
(1)STACK-SEG SEGMENT ‘STACK’×应改为STACK_SEG SEGMENT ‘STACK’(2)DATA_SEG SEG×应改为DATA_SEG SEGMENT
(3)SEGMENT ’CODE’×没有段名
(4)MYDATA SEGMENT ’DATA’
ENDS ×应改为MYDATA ENDS
(5)MAIN_PROC PROC FAR
END MAIN_PROC
MAIN_PROC ENDP×不要END MAIN_PROC
12、DATA DW 1234H
MOV AL , HIGH DATA×DATA是变量,HIGH伪指令不能这样使用
13、JMP [BX] ×不能判断[BX]是段内还是段间,应改为JMP WORD PTR [BX]或JMP DWORD PTR [BX]
14、MUL AL , BL ×MUL BL MUL指令只有一个操作数
SHL AL , 3×如果移位次数不是1,使用CL寄存器
15、mov cx, 50
shl ax , cx×应使用CL寄存器
16、JMP BYTE PTR [BX] ×
17、ORG 100H
NAMES DB ‘TOM..’,20
DB ‘ROSE.’,25
DB ‘KATE.’,22
(1)MOV BX , OFFSET NAMES
MOV AX , [BX+5] √
(2)MOV BX , OFFSET NAMES+11
CMP [BX] , BYTE PTR NAMES+5×存储器中2个数不能直接进行比较
18、PUSH 5 ×不能放立即数
19、XCHG AX , DS×XCHG指令中的段寄存器不能作为操作数
XCHG AX , [SI] √
XCHG [BX] , [SI] ×XCHG指令中操作数必须有一个是寄存器,不能2个操作数都是存储器操作数
XCHG AX , CX√
20、78 MOV AL , FFH ×十六进制数如果以A~F或a~f开头时,则前面加上0。