第3-5章习题解(新)例析.pptVIP

  • 20
  • 0
  • 约1.69万字
  • 约 63页
  • 2017-04-16 发布于湖北
  • 举报
习题讲评 第三章主要内容 8086的寻址方式以及指令介绍 汇编语言的语法规定、语句格式 汇编语言程序设计 3.3 AND AL,AL JZ BRCHl RCR AL,1 JZ BRCH2 RCL AL,1 INC AL JZ BRCH3 上述程序运行后,试回答: (1)当AL= 时, 程序转向BRCHl (2)当AL= 时, 程序转向BRCH2 (3)当AL= 时, 程序转向BRCH3 3.4完成下列操作,选用什么指令: (1)将AX的内容减去0520H,和上次运算的借位; SUB dest,src 功能:dest dest-src SBB dest,src 功能:dest dest-src-CF SBB AX,0520H (2)将变量名TABL的段地址送AX。 变量操作时的分析运算符有以下5种 SEG变量名——取出变量所在段的段基值 OFFSET变量名——取出变量所在处的偏移地址 TYPE变量名——取出变量的数据类型值 LENGTH变量名表示变量所在数组的数据元素个数 SIZE变量名——它表示变量所在数组的字节总数SIZE=LENGTH*TYPE MOV AX,SEG TABL 3.5 D1 DB 20H DUP(?) D2 DW D1 请写出用一条指令实现取D1的偏移地址送SI中的三种方法。 格式:LEA reg,src 功能:reg←EA,将存储器地址送到一个寄存器。源操作数必须为内 存单元地址,目的操作数必须为一个16位通用寄存器。此指令常 用来使一个寄存器作为地址指针。 (A) LEA SI,D1 (B) MOV SI,OFFSET D1 (C) MOV SI,D2 0F00H 3.6 MOV BX , 0FFH AND BX , 0FFFH OR BX , 0F0FH XOR BX , 00FFH 上述程序段运行后,BX= ,CF= BX=0F00H, CF=0 (注意:对于8086 的加法和减法操作,使用CF 来标识将两个操作数看成无符号数时计算是否发生了溢出,而OF 则标识将两个操作数看成有符号数时的情况。计算CF 位时,加法操作是直接将最高位的进位赋给CF,而对于减法操作而言,转换后的补码加法有进位表示实际进行的减法没有借位(即没有溢出),因此需要将最高位进位取反以后赋给CF;对于OF 位的计算则是相同的,通过将最高位的进位和次高位的进位进行异或运算,结果赋给OF(当然也可以使用双符号位来进行计算)。当然对于减法操作而言,我们也可以简单地认为:对于CF 位,将减数与被减数都看成无符号数,如果减数被减数,则CF=1,否则CF 为0;对于OF 位,若两个数的符号相反,而结果的符号与减数相同则OF=1,其他情况OF=0。) 3.7 CMP AX , BX JGE NEXT XCHG AX , BX NEXT: CMP AX , CX JGE DONE XCHG AX , CX DONE: …. 上述程序段执行后,原有AX 、BX 、CX中最大数存放在哪个寄存器中?这3个数是带符号数还是无符号数? 最大数在AX中,是带符号数 3.8画出下列语句的数据在存储器中的存储情况: ARRAYB DB 63,63H,’ABCD’,3 DUP(?),2 DUP(1,3) ARRAYW DW 1234H,5,’AB’,’CD’,?,2 DUP(1,3) DB定义长度为1字节(8位)的数据(字节数据) DW定义长度为1字节(16位)的数据(字数据) 3.9 程序中数据定义如下: DATA1 DW ? DATA2 DB 32 DUP(?) DATA3 DD ? DLENGTH EQU $-DATA1 此时DLENGTH的值是多少? DB定义长度为1字节(8位)的数据(字节数据) DW定义长度为1字节(16位)的数据(字数据) DD定义长度为4字节(32位)的数据(双字数据) EQU 不占内存 解答: DLENGTH=2(字)+32+4(双字)=38 3.10

文档评论(0)

1亿VIP精品文档

相关文档