版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、8086指令系统简介徐承彬1阳山书屋 一、 8086的指令格式和寻址方式汇编语言指令要解决的两个问题:要指出进行什么操作操作符;要指出操作数和操作数地址及操作结果放在何处寻址方式。 操作码(OP)操作数(EA)2阳山书屋(一)、指令格式1、零地址指令格式2、一地址指令格式操作码(OP)OP EA操作码操作数3阳山书屋3、二地址指令格式OP EA1 EA2操作码第一操作数(目的操作数)第二操作数(源的操作数)4阳山书屋二、8086的寻址方式操作数有三种可能存放方式5阳山书屋 (二)、8086的寻址方式操作数有三种可能存放方式操作数在指令中操作数在CPU内部某一寄存器中操作数在内存的存储单元中6阳
2、山书屋1、立即数寻址操作数就在指令中提供,叫立即数寻址方式。例:MOV AL,15H立即寻址该指令是把立即数15H送寄存器AL,指令执行后(AL)=15H 例如: MOV AX,7632H 例如: MOV word ptr BX,20H7阳山书屋2、寄存器寻址 操作数在CPU内部的寄存器中,指令中指定寄存器号例:MOV DI,AXAXDI执行前(AX)=1234H,(DI)=0018H1234H0018H1234H执行后(AX)=1234H,(DI)=1234H寄存器寻址8阳山书屋INCCX;将CX的内容加1ROLAH,1;将AH中的内容循环左移一位CXAH9阳山书屋3、存储器寻址:操作数或地
3、址在存储器中存储器寻址直接寻址间接寻址相对寻址基址变址寻址相对基址变址寻址10阳山书屋(1)直接寻址操作数的16位有效地址在指令中物理地址=(DS)16+EA例:MOV AX,205AHM.代码段数据段设(DS)=3000HOP5A203 0 0 0205A物理地址=3205A1234指令执行后(AX)=3412H数据段首地址=3000011阳山书屋注:在汇编语言中有时用符号地址作为有效地址。例如:MOV AX,ARRY也可写成 MOV AX,ARRY在8086中允许段超越,即允许数据放在数据段以外的其他段中,指令中需加段跨越前缀。例如:MOV AX,ES:2000H符号地址注:对于双操作数指
4、令,必须有一个操作数在寄存器中12阳山书屋(2)间接寻址:操作数的有效地址在寄存器BX,BP或变址寄存器SI,DI中操作数物理地址=(DS)16+(BX)(DS)16+(SI)(DS)16+(DI)(SS)16+(BP)13阳山书屋 例如: MOV AX,BX 例如: MOV AL,BX 例如: MOV AX,SI 例如: MOV AL,DI 例如: MOV SI,BX 例如: MOV BP,AX寄存器间接寻址寄存器寻址14阳山书屋(3)相对寻址:操作数的有效地址由基址寄存器BX,BP或变址寄存器SI,DI之一中的内容加上指令中指定的8位或16位位移量组成。操作数物理地址=(DS)16+(BX
5、)+ 8位或16位位移量(DS)16+(SI) + 8位或16位位移量(DS)16+(DI) + 8位或16位位移量(SS)16+(BP) + 8位或16位位移量15阳山书屋例:MOV AX,COUNTSIM.代码段数据段设(DS)=3000H,(SI)=0110HOP10003 0 0 00110+0010=0120物理地址=30120H1234指令执行后(AX)=3412H数据段首地址=3000016阳山书屋 例如: MOV AX,20HBX相对寻址 例如: MOV AX,BUFSI17阳山书屋(4)基址变址寻址:操作数的有效地址是指令中指定的基址寄存器(BX或BP)和变址寄存器(SI或D
6、I)之和。操作数物理地址=(DS)16+(BX)+ (SI)(DS)16+(BX)+ (DI)(SS)16+(BP)+ (SI)(SS)16+(BP)+ (DI)18阳山书屋 例如: MOV AX,BXSI基址变址寻址 例如: MOV AL,BXDI 例如: MOV AX,BPSI19阳山书屋(5)相对基址变址寻址:操作数的有效地址是指令中指定的基址寄存器(BX或BP)和变址寄存器(SI或DI)与一个8位或16位位移量之和。操作数物理地址=(DS)16+(BX)+ (SI) +8位或16位位移量(DS)16+(BX)+ (DI)+ 8位或16位位移量(SS)16+(BP)+ (SI)+ 8位或
7、16位位移量(SS)16+(BP)+ (DI)+ 8位或16位位移量20阳山书屋 例如: MOV AX,10HBXSI相对基址变址寻址 例如: MOV AL,BUFBXDI21阳山书屋例如:MOV AX,MASKBXDI设(DS)=2000H,(SS)=3000H(BX)=1100H,(DI)=0010H,(SI)=0030HMASK=0203H,(21313H)=1234H(31313H)=2356H,(21333H)=0056H则:操作数的物理地址=2 1 3 1 3H执行后(AX)=1234H22阳山书屋指出下列指令中源操作数和目的操作数的寻址方式1.MOV AX,1002.MOV SI
8、,AX3.MOV CX,DATXSI4.ADD AX,BXDI5.AND AX,BX6.MOV AX,TAXBXSI7.SUB AX,2500H23阳山书屋二、 8086的指令系统(一)、指令书写格式:标号:助记符 目的操作数,源操作数;注释(二)、8086的指令系统数据传送指令算术运算指令逻辑操作指令串操作指令控制转移指令处理机控制指令24阳山书屋1、数据传送:负责把数据、地址或立即数送到寄存器或存储单元中。分类通用传送指令累加器专用传送指令地址传送指令标志传送指令25阳山书屋(1)通用传送指令最基本的传送指令(MOV) 格式:MOV OPRD1,OPRD2;B/WOPRD1:累加器、寄存器
9、、存储器OPRD2:累加器、寄存器、存储器操作数和立即数目的操作数源操作数26阳山书屋传送路径段寄存器DS、SS、ES存储器立即数通用寄存器AX、BXCX、DXBP、SPSI、DI27阳山书屋MOV 指令的几种形式MOV BX,AXMOV ALPHA,AXMOV ALPHA,AHMOV AH,ES:BXSIMOV AL,BPMOV AX,ARRAY28阳山书屋MOV ES,DXMOV DS,AXMOV ES,SS:BXMOV BX,DXMOV BL,AX(错误指令)MOV MEM,DXMOV CH,8AHMOV DL,B MOV BX,12H 29阳山书屋堆栈操作指令堆栈是在存储器中开辟的一个
10、栈区 。工作方式:“后进先出”的方式进行8086的堆栈是从高地址向低地址方向生长的 堆栈操作:入栈指令PUSH出栈指令POP30阳山书屋在CALL指令、 RET指令、中断响应和返回中都有入栈和出栈的操作。PUSH入栈指令格式:PUSH SRC;W字操作执行的操作(SP-1)(SP-2) (SRC)SP (SP-2);先修改后操作SRC是入栈的字操作数寄存器、段寄存器(不包含CS)、和存储器31阳山书屋例如:PUSH AX 设执行前(SP)=2500H,SS=5000H,(AX)=3125HSS=5000H堆栈段SP=2500H3 1 2 5AX3 1SP=24FEH2 5栈顶单元物理地址=52
11、50032阳山书屋例如:PUSH BETABXSI设DS=2000H,BX=2100H,SI=2520H,BETA=03404H,SS=5000H,SP=2500H操作数的物理地址PA=20000+2100+2520+0340=24960(524FE)(24960)(24961)(524FF)33阳山书屋POP出栈指令格式:POP DST;W字操作执行的操作(DST) (SP+1,SP)SP (SP+2);先操作后修改DST是出栈的字操作数的目的地址(寄存器、段寄存器、和存储器)34阳山书屋 例如: PUSH AX PUSH BX POP AX执行前: AX=1234H BX=2345H SP
12、=1000H1000SP35阳山书屋 例如: PUSH AX PUSH BX POP AX执行前: AX=1234H BX=2345H SP=1000H10000FFESP34H12H执行后1: AX=1234H BX=2345H SP=0FFEH36阳山书屋 例如: PUSH AX PUSH BX POP AX执行前: AX=1234H BX=2345H SP=1000H10000FFE34H12H执行后2: AX=1234H BX=2345H SP=0FFCH0FFCSP45H23H37阳山书屋 例如: PUSH AX PUSH BX POP AX执行前: AX=1234H BX=2345
13、H SP=1000H10000FFE34H12H执行后3: AX=2345H BX=2345H SP=0FFCH0FFC45H23HSP0FFE38阳山书屋 例如: PUSH AX PUSH BX POP AX执行前: AX=1234H BX=2345H SP=1000H10000FFE34H12H执行后3: AX=2345H BX=2345H SP=0FFEH0FFC45H23HSP0FFE39阳山书屋交换指令:XCHG格式:XCHG OPRD1,OPRD2;B/w执行的操作:(OPRD1) (OPRD2)40阳山书屋例如:XCHG AX,BX执行前:AX=420AH , BX=7955H执
14、行后:AX=7955H ,BX=420AH例如:XCHG DX,BPSI41阳山书屋(2) 累加器专用传送指令 IN 输入指令 固定端口输入数据格式:IN AL/AX,Port;Port为端口号功能:从固定端口Port传送一个字节或 一个字数据到AL或AX寄存器8086规定,从固定端口输入数据,端口号的范围为: 00HFFH42阳山书屋可变端口输入数据格式:IN AL/AX,DX;功能:从DX寄存器所存放的端口地址中送 一个字节或 一个字数据到AL或AX寄存器8086规定:外设最多可以有65536个I/O端口,端口号范围为0000HFFFFH。其中低256个端口为固定端口,指令中可以直接指定。
15、当端口号256时必须先把端口号放在DX中然后才使用IN指令,他们称为可变端口43阳山书屋OUT 指令 输出指令格式:OUT Port,AL/AX OUT DX,AL/AX例如:IN AX,21H IN AL,DX OUT 25H,AX OUT DX,AX44阳山书屋(3)地址-目的传送指令:把地址送到指定的寄存器中 LEA指令:有效地址送寄存器指令格式LEA REG,SRC功能把REG EASRC注:SRC只能是各种寻址方式 的存储器操作数 REG 只能是16位的通用寄存器 45阳山书屋例如:LEA CX,BXDI执行前 (BX)=1000H ,(DI)=0250H操作数的有效地址EA=100
16、0H+0250=1250H执行后(CX)=1250HCX 的内容是存储单元的有效地址而非存储单元的内容例:LEA DX,BATEBX执行前(BX)=1248H ,BETA=0020H该指令执行后(DX)=1268H46阳山书屋2、算术运算指令:用来执行算术运算47阳山书屋(1)加法指令:ADD ADC INC ADD:加法指令格式:ADD OPRD1,OPRD2操作: OPRD1 OPRD1+OPRD2结果影响标志位 AF,CF,OF,PF,SF,ZF 例如: ADD AX,SI 例如: ADD AL,BH48阳山书屋(1)加法指令:ADD ADC INC ADC:带进位的加法指令格式:ADC
17、 OPRD1,OPRD2操作: OPRD1 OPRD1+OPRD2+CF结果影响标志位 AF,CF,OF,PF,SF,ZF49阳山书屋例如:在存储区中有两个双字数据,分别存放在FIRST和SECOND单元中(四个字节)将两个数相加后结果放在THIRD单元中7 8 5 62 3 9 11 0 3 31 A B 6FIRST3 31 05 67 8SECONDB 61 A9 12 3THIRD50阳山书屋相关程序如下:MOV AX,FIRST3 31 05 67 8B 61 A9 12 3 E 9 2 AFIRSTSECONDADD AX,SECONDTHIRDMOV THIRD,AXMOV AX
18、,FIRST+2ADC AX,SECOND+2MOV THIRD+2,AX51阳山书屋(1)加法指令:ADD ADC INC INC:加1指令格式:INC OPRD操作: OPRD OPRD+1结果影响标志位 AF,OF,PF,SF,ZF例:INC AL例:INC CX例:INC word PTR BXDI52阳山书屋(2)减法指令:SUB SBB DEC CMPSUB:减法指令格式:SUB OPRD1,OPRD2操作: OPRD1 OPRD1-OPRD2结果影响标志位 AF,CF,OF,PF,SF,ZF53阳山书屋(2)减法指令:SUB SBB DEC CMPSBB:带借位减法指令格式:SB
19、B OPRD1,OPRD2操作: OPRD1 OPRD1-OPRD2-CF结果影响标志位 AF,CF,OF,PF,SF,ZF54阳山书屋(2)减法指令:SUB SBB DEC CMPDEC:减1指令格式:SUB OPRD操作: OPRD OPRD-1结果影响标志位 AF,OF,PF,SF,ZF55阳山书屋(2)减法指令:SUB SBB DEC CMPCMP:比较指令格式:CMP OPRD1,OPRD2操作: OPRD1-OPRD2结果影响标志位 AF,CF,OF,PF,SF,ZF56阳山书屋例如:CMP AX,BX例如:CMP AL,20H例如:CMP AL,SI57阳山书屋(3)乘法指令:M
20、UL IMULMUL:无符号书乘法指令格式:MUL SRC;B/W操作:AX AL*(SRC)DX AX AX*(SRC)指令中隐含目的操作数为累加器(AL/AX)源操作数为寄存器操作数或存储器操作数58阳山书屋(3)乘法指令:MUL IMULIMUL:有符号数乘法指令格式:IMUL SRC;B/W操作:AX AL*(SRC)DX AX AX*(SRC)两条指令的执行结果是不同的乘法指令对CF和OF有影响对其他位无定义59阳山书屋(4) 除法指令:DIV IDIVDIV:无符号数除法指令格式:DIV SRC操作:字节操作,16位被除数在AX中8位除数为源操作数,结果的8位商在AL中,8位余数在
21、AH中操作:字操作, 位被除数在 和 中, 位除数为源操作数, 结果的16位商在AX中,16位余数在DX中DX 32AX 16 60阳山书屋(4) 除法指令:DIV IDIVIDIV:有符号数除法指令格式与操作同DIV 指令注1:除法运算后,标志位不确定 注2:若除数位0,则产生0号中断 注3:除法中,若被除数为8位(字节除法或16位(字除法)时必须将被除数进行符号扩展,AL扩展到AH中,AX扩展到DX中61阳山书屋CBW:字节转换为字指令格式:CBW操作:AL中的符号位扩展到AH中例如: AL=64H=0 1 1 0 0 1 0 0B执行CBW后AX=00 64H例如: AL=83H=1 0
22、 0 0 0 0 1 1B执行CBW后AX=FF 83H62阳山书屋CWD:字转换为双字指令格式:CWD操作:AX中的符号位扩展到DX中CBW和CWD指令不影响标志位例如:计算 V-(X*Y+Z)/X其中X,Y,Z,V均为16位有符号数分别已装入X,Y,Z,V字单元,要求将上式结果的商存入AX中,余数存入DX中,请编写相应程序63阳山书屋V-(X*Y+Z)/XMOV AX,XXYZVIMUL Y MOV CX,AXMOV BX,DXMOV AX,ZCWD ADD CX,AXADC BX,DXMOV AX,VCWD SUB AX,CXSBB DX,BX;X*Y IDIV X64阳山书屋3、逻辑运
23、算指令和移位指令(1)逻辑运算指令AND OR XOR TEST NOT AND:逻辑与指令格式:AND OPRD1,OPRD2;B/W 功能: OPRD1 OPRD1 OPRD2AND指令执行后,CF=0,OF=0. 对AF无定义对 SF ,PF ,ZF 有影响65阳山书屋注: 0A=01A=A 例1:屏蔽一个字节的高4位 (AL)=39H =0011 1001B则屏蔽字: 00001111则指令AND AL,0FH执行后 (AL)= 09H 例2:AND AL,AL 执行后AL寄存器的内容不变 但使CF=0 66阳山书屋(1)逻辑运算指令AND OR XOR TEST NOT OR:逻辑或
24、指令格式:OR OPRD1,OPRD2;B/W 功能: OPRD1 OPRD1 OPRD2OR指令执行后,CF=0,OF=0. 对AF无定义对 SF ,PF ,ZF 有影响67阳山书屋注: 0A=A1A=1 例1:将一个字节的高4位置1 (AL)=39H =0011 1001B则屏蔽字: 11110000则指令OR AL,F0H执行后 (AL)= F9H 例2:OR AL,80H OR AL,AL 68阳山书屋(1)逻辑运算指令AND OR XOR TEST NOT XOR:逻辑异或指令格式:XOR OPRD1,OPRD2;B/W 功能: OPRD1 OPRD1 OPRD2XOR指令执行后,C
25、F=0,OF=0. 对AF无定义对 SF ,PF ,ZF 有影响69阳山书屋注: 0A=A1A=A 例1:将某个操作数清零 则执行指令 XOR AL,AL则屏蔽字: 10011000 例2:将操作数的某些位取反 (AL)=38H= 0011 1000B 则执行指令 XOR AL,98H70阳山书屋(1)逻辑运算指令AND OR XOR TEST NOT TEST:测试指令格式:TEST OPRD1,OPRD2;B/W 功能: OPRD1 OPRD2TEST指令执行后,CF=0,OF=0. 对AF无定义对 SF ,PF ,ZF 有影响71阳山书屋作用:测试某一位或某几位的条件是否满足例1:TES
26、T AL,01HJNZ THERE THERE : (AL)=1010 0011 0000 0001例2:TEST AX,8000HJNZ THERE THERE : 72阳山书屋(1)逻辑运算指令AND OR XOR TEST NOT NOT:逻辑非指令格式:NOT OPRD;B/W 功能: OPRD OPRDNOT指令不影响标志位例 NOT AL73阳山书屋3、逻辑运算指令和移位指令(2)逻辑移位指令SHL SHR SAL SAR ROL ROR RCL RCR SHL:逻辑左移指令格式:SHL OPRD,CNT;B/W 功能:移位次数由CNT决定 可以是1或CL寄存器的值D0D70CF7
27、4阳山书屋(2)逻辑移位指令SHL SHR SAL SAR ROL ROR RCL RCR SHR:逻辑右移指令格式:SHR OPRD,CNT;B/W 功能:D0D70CF75阳山书屋(2)逻辑移位指令SHL SHR SAL SAR ROL ROR RCL RCR SAL:算术左移指令格式:SAL OPRD,CNT;B/W 功能:D0D70CF76阳山书屋(2)逻辑移位指令SHL SHR SAL SAR ROL ROR RCL RCR SAR:算术右移指令格式:SHR OPRD,CNT;B/W 功能:D0D7CF77阳山书屋(2)逻辑移位指令SHL SHR SAL SAR ROL ROR RC
28、L RCR ROL:循环左移指令格式:ROL OPRD,CNT;B/W 功能:D0D7CF78阳山书屋(2)逻辑移位指令SHL SHR SAL SAR ROL ROR RCL RCR ROR:循环右移指令格式:ROR OPRD,CNT;B/W 功能:D0D7CF79阳山书屋(2)逻辑移位指令SHL SHR SAL SAR ROL ROR RCL RCR RCL:带进位循环左移指令格式:RCL OPRD,CNT;B/W 功能:D0D7CF80阳山书屋(2)逻辑移位指令SHL SHR SAL SAR ROL ROR RCL RCR RCR:带进位循环右移指令格式:RCR OPRD,CNT;B/W
29、功能:D0D7CF81阳山书屋MOV CL,3SAR 20HBX,CL执行前(DS)=2000H (BX)=1200H (21220)=38H =0011 1000B 执行后(21220)= 0000 0111B=07H82阳山书屋例2: SAL AH,1执行前(AH)=A5H 1 0 1 0 0 1 0 1CF执行后(AH)= 4AHCF=10F=1ZF=0SF=0PF=083阳山书屋 4、串操作指令84阳山书屋 5、控制转移指令(1)无条件转移指令JPM段内转移段间转移IPCS IP85阳山书屋Data segmentAddr dw numberNumber dw yCount dw ?D
30、ata endsCode segmentAssume cs:code,ds:dataStart:mov ax,data Mov ds,ax Mov cx,0 Mov bx,addr Mov ax,bxRepeat:test ax,0ffffh Jz exit Jns shiftInc cxShift: shl ax,1 Jmp repeatExit: mov count,cx Mov ah,4chInt 21h Code ends End start 86阳山书屋(2)条件转移指令条件判断Y转向目标指令N顺序执行指令87阳山书屋根据单个标志位的条件进行转移JZ OPR;ZF=1 转移JNZ O
31、PR;ZF=0 转移JS OPR;SF=1 转移JNS OPR;SF=0 转移JO OPR;OF=1 转移JNO OPRJP OPRJNP OPR;OF=0转移;PF=1转移;PF=0转移例如: CMP AX,DXJZ NEXT 88阳山书屋比较两个无符号数根据比较结果转移JB(JNAE,JC) OPRJNB(JAE,JNC) OPRA和BJBE(JNA,) OPRJNBE(JA,) OPR89阳山书屋例如:当一个无符号数x小于、等于、或大于100时的三种情况下,应去执行三个不同的程序段MOV AL,XCMP AL,100JA PROG3PROG1: X100程序段 JZ PROG290阳山书
32、屋比较两个有符号数根据比较结果转移JL(JNGE) OPRJNL(JGE) OPRJLE(JNG) OPRJNLE(JG) OPR测试CX的值为0则转移指令 JCXZ格式:JCXZ OPR91阳山书屋(3)循环指令LOOP 循环指令格式:LOOP OPR测试条件:CX0LOOPZ/LOOPE 为零或相等时循环指令格式:LOOPZ/LOOPE OPR测试条件:ZF=1且CX0LOOPNZ/LOOPNE 不为零或不相等时循环指令格式:LOOPNZ/LOOPNE OPR测试条件:ZF=0且CX092阳山书屋例如:有一个首地址为ARRAY的M个字数组试编写一个程序,求出该数组的内容之和(不考虑溢出)并
33、把结果存入TOTAL中存储器数据段ARRAYM个TOTALMOV CX,MMOV AX,0MOV SI,0START LOOP:ADD AX,ARRAYSIADD SI,2LOOP START LOOPMOV TOTAL,AX93阳山书屋5、处理器控制指令CLCCMCSTCCLDSTDCLISTIHLT94阳山书屋3.3汇编语言程序设计一、8086汇编语言源程序的格式1、一般格式Name1 segment 语句Name1 endsName2 segment 语句Name2 ends95阳山书屋Name3 segment 语句Name3 ends end 标号2、指令的种类 指令语句指示性语句M
34、OV ,ADD ,LMPMY PLACE DB ?96阳山书屋二、语句的格式名字项操作项操作数项;注释项1、名字项标号变量某条指令所在存储单元的符号地址某操作数所在存储单元的符号地址(1)标号在代码段定义,后面跟“:”(2)变量在代码段以外的段定义,后不跟“:”2、操作项指令、伪指令、或宏指令助记符3、操作数项由一个或多个项组成,多个操作数之间用“,”分开97阳山书屋(1)对于指令语句一般为操作数地址、变量、寄存器、标号、变量或表达式 (2)对于伪指令语句或宏指令语句一般为所要的参数 98阳山书屋DEBUG.EXE 调试程序一、程序的编制和运行1、用编辑程序EDIT建立以.ASM为扩展名的源程
35、序文件。2、用汇编程序MASM对源文件进行汇编,生成以. OBJ为扩展名的目标文件3、用LINK(连接程序)对目标文件进行连接,形成以.EXE为扩展名的可执行文件。99阳山书屋二、DEBUG.EXE 调试程序的使用1、进入DEBUG 在根目录下键入DEBUG例如:CDEBUG或者CDEBUGFilename.EXEDEBUG 调入后出现提示符100阳山书屋2、DEBUG 的常用命令(1)显示内存单元内容命令D格式:- D 地址 或 -D 范围(2)修改内存单元内容命令E格式1:- E 地址 内容表例如:- E DS:120 00 11ABC22格式2:- E 地址 逐个单元相继修改例如:- E
36、 100101阳山书屋102阳山书屋103阳山书屋2、DEBUG 的常用命令(1)显示内存单元内容命令D格式:- D 地址 或 -D 范围(2)修改内存单元内容命令E格式1:- E 地址 内容表例如:- E DS:120 00 11ABC22格式2:- E 地址 逐个单元相继修改例如:- E 100104阳山书屋105阳山书屋2、DEBUG 的常用命令(1)显示内存单元内容命令D格式:- D 地址 或 -D 范围(2)修改内存单元内容命令E格式1:- E 地址 内容表例如:- E DS:120 00 11ABC22格式2:- E 地址 逐个单元相继修改例如:- E 100106阳山书屋107阳
37、山书屋(3)检查和修改寄存器命令R格式1:-R显示CPU内所有寄存器内容和标志位格式2:-R 寄存器名显示和修改某个寄存器内容格式3:-RF显示和修改标志位状态108阳山书屋109阳山书屋8个标志位的置位复位名称标志位置位复位溢出 OF OV NV方向 DF DN UP符号 SF NG PL零 ZF ZR NZ辅助进位 AF AC NA奇偶 PF PE PO进位 CF CY NC中断 IF EI DI110阳山书屋(3)检查和修改寄存器命令R格式1:-R显示CPU内所有寄存器内容和标志位格式2:-R 寄存器名显示和修改某个寄存器内容格式3:-RF显示和修改标志位状态111阳山书屋112阳山书屋
38、113阳山书屋(3)检查和修改寄存器命令R格式1:-R显示CPU内所有寄存器内容和标志位格式2:-R 寄存器名显示和修改某个寄存器内容格式3:-RF显示和修改标志位状态114阳山书屋115阳山书屋116阳山书屋117阳山书屋(4)运行命令G格式:-G =地址1 地址2地址3(5)跟踪命令T格式1:-T =地址逐条指令跟踪格式2:-T =地址 值(6)汇编命令A格式:-A 地址118阳山书屋119阳山书屋120阳山书屋(4)运行命令G格式:-G =地址1 地址2地址3(5)跟踪命令T格式1:-T =地址逐条指令跟踪格式2:-T =地址 值(6)汇编命令A格式:-A 地址121阳山书屋122阳山书
39、屋123阳山书屋(4)运行命令G格式:-G =地址1 地址2地址3(5)跟踪命令T格式1:-T =地址逐条指令跟踪格式2:-T =地址 值(6)汇编命令A格式:-A 地址124阳山书屋125阳山书屋126阳山书屋(4)运行命令G格式:-G =地址1 地址2地址3(5)跟踪命令T格式1:-T =地址逐条指令跟踪格式2:-T =地址 值(6)汇编命令A格式:-A 地址127阳山书屋128阳山书屋129阳山书屋130阳山书屋注:若输入的语句有语法错误,则DEBUG显示 ERROR 且重新显示现行的汇编地址等待新的输入 (7)反汇编命令U格式:-U 范围131阳山书屋132阳山书屋133阳山书屋134
40、阳山书屋135阳山书屋136阳山书屋(8)退出命令Q格式:-Q退出DEBUG 返回DOS137阳山书屋138阳山书屋139阳山书屋140阳山书屋141阳山书屋三、指示性语句 伪指令语句不形成指令的机器码,仅告诉汇编程序为指令中的操作数如何存放,指令如何产生机器码 伪指令语句前如有标号,其后无冒号“:”如有操作数,可以有两个以上的操作数。伪指令在程序中起着定义、赋置说明、分段等作用。 142阳山书屋1、数据定义伪指令格式:变两名 助记符 操作数 ;注释DB:定义字节,其后的每个操作数占用一个字节DW:定义字,其后的每个操作数占用一个字DD:定义双字,其后的每个操作数占用两个字DQ:定义4个字,其
41、后的每个操作数占用4个字Dt:定义10个字节,其后的每个操作数占用10个字节 143阳山书屋归纳为以下几种情况 (1)操作数可以是常量或常量表达式例如: X DB 25,42,14H,0,-30Y DW 123H,610,3A60HZ DD 3705H,15 X1 92 A1 40 0E 2Y2 30 13 C0 06 03 A0 5Z3 70 00 0144阳山书屋(2)伪指令后可用操作数“?”分配并保留空间,不存数据例如: A DB 5,? DB ?,?,10B DW ?,15,?A05-0AB-0F00-145阳山书屋(3)可以用操作符DUP来复制一些操作数格式:EXPCOUNT DUP
42、(操作数.操作数)例如: Y1 DB 2 DUP (11,?,15)Y2 DW 3 DUP (2500H,?)146阳山书屋Y1 DB 2 DUP (11,?,15)Y2 DW 3 DUP (2500H,?)Y10B-0F0B-0FY20025-0025-147阳山书屋例如: PARA DB 2DUP(3,2DUP(5,7),0),?0305PARA07050700030507050700-复制操作数DUP可以嵌套 148阳山书屋(4)可以定义一个表或一个字符串例如: 110的平方值表可以定义如下 :PFB DB 1,4,9,16,25,36,49,64,81定义字符串 STRINGS DB
43、“GOOD MORNING”149阳山书屋2、符号定义语句格式:符号名 EQU 表达式伪指令可以把符号名定义为常量,或一个能求出常数值得表达式 例如: RT1 EQU 123FS EQU 32B5 EQU RT1+1150阳山书屋3、段定义伪指令(1)段定义伪指令SEGMENT/ENDS格式:段名 segment 定位类型 组合类型 类别段名 ends 功能:定义一个逻辑段,由若干逻辑段组成源程序 151阳山书屋定位类型 说明段的开始地点的特点PARA WORD BYTE PAGE 组合类型 告诉连接程序本段与其他段的关系PUBLIC STACK COMMON 152阳山书屋(2)段寄存器说明
44、伪指令格式:ASSUME 段寄存器名:段名段寄存器名:段名功能:说明段寄存器与段的关系在一般程序中,本伪指令通常位于代码段的前面,指明程序中各段所用到的段寄存器的情况 153阳山书屋Code segment Assumecs:code, ds:date, ss:stack, es:date1, Mov ax, dateMov ds, axMov ax, date1Mov es, axCode ends 154阳山书屋返回 dos通常在代码段结束之前插入两条语句MOV AH,4CHINT 21H 155阳山书屋四、程序设计举例1、直线运行程序例如:求两个数的平均值。两个数分别放在X和Y单元中,结
45、果放在Z单元中。设两个数分别为32和64编程如下:156阳山书屋DATE segment X DB 20H Y DB 40H X20Y40Z DB ? DATE ENDS CODE segment ASSUME CS:CODE, DS:DATE START:MOV AX,DATE MOV DS,AX MOV AL,X 157阳山书屋MOV AL,X ADD AL,Y MOV AH,00H ADC AH,00H MOV BL,02H DIV BL MOV Z,AL CODE ENDS END START 158阳山书屋2、分支程序设计分支程序:根据某种判断结果,从两个以上的程序中选择一个执行。条
46、件分支段1分支段2或条件分支段2159阳山书屋例3、比较两个无符号数的大小,把大数存入MAX单元。DATE segment SHUJU DB X1,X2 MAX DB ? DATE ENDS CODE SEGMENT ASSUME CS:CODE , DS:DATA 160阳山书屋MOV AX,DATA MOV DS,AX MOV AL,SHUJU CMP AL,SHUJU+1 JA BRANCH BRANCH:MOV MAX, ALMOV AL, SHUJU+1 CODE ENDS END MOV AH, 4CH INT 21H 161阳山书屋3、循环程序设计循环程序一般由四部分组成循环初值
47、循环次数,循环正常工作的初始状态循环体循环工作的主体部分,为完成特定功能而设计的程序段 修改部分保证每次循环时,相关信息发生有规律的变化,为下一次循环作准备 循环控制部分控制循环的运行和结束 162阳山书屋例4、从XX单元开始10个连续单元中存放有10个无符号数,从中找出最大者送YY单元。XXYY分析AL163阳山书屋Data segment Xx db 15,22,16,9,3,44,26,88,39,52 Yy db ? Data ends Code segment Assume cs: code,ds:data Assume cs: code,ds:data Mov ax,data Mo
48、v ds,ax Mov al,xx 164阳山书屋lea bx,xx inc bx Cmp al,bx Mov cx,9 Jae next Xchg al,bx Loop next:loop1:loop1Mov yy,al Mov ah,4ch Int 21h Code ends End 165阳山书屋常用系统功能调用01H号读取键盘字符并回显(单字符)调用方式MOV AH,01HINT 21H 说明等待按键 若是CTRL-BREAK则退出 其他键,将其ASCLL码送AL寄存器,同时送显示器显示 166阳山书屋02H号显示字符 调用方式MOV AH,02HINT 21H DL 要显示字符的AS
49、CLL码说明将置入DL寄存器的字符送显示器显示 167阳山书屋08H号键盘输入单字符不显示 调用方式MOV AH,08HINT 21H 说明将输入的字符送AL寄存器 168阳山书屋09H号字符串输出显示 调用方式DX 要显示字符串的首地址MOV AH,09HINT 21H 说明要显示的字符串一般定义在数据段 该字符串必须以定界符“$”为结束标志 “$” 字符不显示 169阳山书屋STRING DB How are you,$ 例如: MOV DX,OFFSET STRING MOV AH,09H INT 21H 170阳山书屋0AH号字符串输入 调用方式DX 接收字符串缓冲区的首地址MOV A
50、H,0AHINT 21H 说明从键盘接收字符串到内存指定的缓冲区,直到回车为止 缓冲区的第一个字节为指定缓冲区的字符个数 缓冲区的第二个字节保留,填写实际输入字符的个数 171阳山书屋缓冲区的第三个字节开始存入输入的字符 例如: DATA SEGMENT BUF DB 80 DB ? DB 80DUP(?) DATA ENDS 172阳山书屋4CH号结束程序返回操作系统 调用方式MOV AH,4CHINT 21H 173阳山书屋从键盘输入07中的一个数,然后将数字转换成对应位为1的8位二进制数存入AL中,根据AL中哪一位为1转入相应的分支程序处,实现散转,设8个分支程序分别显示AH中的一个 。
51、 分析: 输入0 AL0000 0001 显示A 输入1AL0000 0010 显示B 输入2AL0000 0100 显示C 输入3AL0000 1000 显示D 输入7AL1000 0000 显示H174阳山书屋实际: 输入0AL0011 00000000 0001 输入10011 00010000 0010AL 输入30011 00110000 1000AL 输入70011 01111000 0000AL设置初值寄存器DL0000 0001移动次数由AL低4位得到送CL寄存器移动 DL后送显示175阳山书屋code segmentassume cs:codestart:mov dl,01hmov ah,1int 21hcmp al,qjz exitand al,0fhmov cl,alshl dl,clmov al,dlcmp al,01hjz xacmp al,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肠道病毒CoxA16型手足口病病因介绍
- 羊奶课件教学课件
- 部编版四年级语文上册第27课《故事二则》精美课件
- 部编版四年级语文上册《语文园地一》教学设计
- 部编版四年级语文上册《语文园地八》精美课件
- 细菌性上呼吸道感染病因介绍
- 《客户关系管理实务》电子教案 18实训项目:产品推介会组织开展
- 《中国历史总复习》课件
- 教科版小学综合实践6下(教案+课件)60 饮料与健康教案
- 2024版家具定制销售合同6篇
- 瓦斯抽放工比武具体实施方案
- (完整PPT)干眼的诊治课件
- 《小企鹅逛百货商店》原版有声动态PPT课件
- 冷却塔使用说明书
- 消防系统维修保养及设施检测技术方案
- 小学生体育锻炼打卡表(打印版)
- 那些伴我成长动画片6.2
- 室外消防及给水管道施工方案
- 最新肿瘤科-胃癌中医临床路径(试行版)
- 中国地理知识(全面)(课堂PPT)
- 中重型载货汽车总布置设计规范
评论
0/150
提交评论