1、P144 12 假设DS=212AH,CS=0200H,IP=1200H,BX=0500H,位移量DATA=40H,(217A0H)=2300H,(217E0H)=0400H,(217E2H)=9000H试确定下列转移指令执行后的结果。(1)JMP 2300H(2)JMP WORD PTR BX+DATA (3)JMP DWORD PTR BX+DATA,(1)直接寻址方式转移指令,执行后CS=0200H,IP=2300H,P144 12 假设DS=212AH,CS=0200H,IP=1200H,BX=0500H,位移量DATA=40H,(217A0H)=2300H,(217E0H)=0400
2、H,(217E2H)=9000H试确定下列转移指令执行后的结果。(1)JMP 2300H(2)JMP WORD PTR BX+DATA (3)JMP DWORD PTR BX+DATA,(2)内存间接寻址方式,段内转移指令, 执行后转移的地址在内存BX+DATA CS =0200H不变, PA =DS*10H+BX+DATA=212A0H+0500H+40H=217E0H IP=(217E0H)=0400H,P144 12 假设DS=212AH,CS=0200H,IP=1200H,BX=0500H,位移量DATA=40H,(217A0H)=2300H,(217E0H)=0400H,(217E2
3、H)=9000H试确定下列转移指令执行后的结果。(1)JMP 2300H(2)JMP WORD PTR BX+DATA (3)JMP DWORD PTR BX+DATA,(3)内存间接寻址方式,段间转移指令, 执行后转移的地址在内存地址 BX+DATA的双字单元 PA =DS*10H+BX+DATA=212A0H+0500H+40H=217E0H CS =9000H IP =(217E0H)=0400H,P144 14 试编写程序,统计BUFFER为起始地址的连续200个单元中的0的个数。,MOV CX,200LEA SI,BUFFERMOV AL,0 NEXT2: CMP BYTE PTR
4、SI,0JNZ NEXT1INC AL NEXT1: INC SILOOP NEXT2HLT,对于字节单元:,P144 14 试编写程序,统计BUFFER为起始地址的连续200个单元中的0的个数。,MOV CX,200LEA SI,BUFFERMOV AL,0 NEXT2: CMP WORD PTR SI,0JNZ NEXT1INC AL NEXT1: INC SIINC SILOOP NEXT2HLT,对于字单元:,P144 15 写出完成下列功能的程序段 从地址DS:0012H中传送一个数据56H到AL寄存器。 将AL中的内容左移两位。 AL的内容与字节单元DS:0013H中的内容相乘。
5、乘积存入字单元DS:0014H中。,MOV AL,0012H MOV CL,2 SHL AL,CL MUL BYTE PTR0013H (IMUL) MOV 0014H,AX HLT,P144 17 设有两个8个字节长的BCD码数据BCD1与BCD2.BCD1数惟1000H为首址在内存中顺序存放;BCD2数2000H为首址在内存中顺序存放。要求相加后将结果顺序存放在以2000H为首地址的内存区中(设结果BCD数仍不超过8个字节长)试编写出完成上述功能的汇编语言程序。,MOV CX,8LEA DI,2000H LEA SI,1000HCLC NEXT:MOVAL,SIADC AL,DIDAAMO
6、V DI,ALINC SIINC DILOOP NEXTHLT,P144 18 试编写出从内存0404H单元开始的256个字节单元清零的程序,MOV CX,128LEA SI,0404HMOV AX,0 NEXT: MOV SI,AXINC SIINC SILOOP NEXTHLT,P144 19 设从2000H为首址的内存中,存放着10个带符号的字节数据,试编写“找出其中最大的数,并存入2000H单元中”的程序。,MOV CX,10DEC CXLEA SI,2000H NEXT2: MOV AL,SICMP AL,SI+1JLE NEXT1MOV AL,SI+1 NEXT1: INC SILOOP NEXT2MOV 2000H,ALHLT,课后作业: P145 19,