汇编的习题 120
1.已知一个8位数B0H:①如果将其视为无符号数,其值是多少?(用十进制形式表示,写明计算过程)并写出其等值扩展的16位形式。②如果将其视为有符号数,其值是多少?(用十进...
1.已知一个8位数B0H:
①如果将其视为无符号数,其值是多少?(用十进制形式表示,写明计算过程)
并写出其等值扩展的16位形式。
②如果将其视为有符号数,其值是多少?(用十进制形式表示,写明计算过程)
并写出其等值扩展的16位形式。
2.完成下列8位数的运算,写出运算结果(写明计算过程),并判断分别作为无符号数和有符号数时运算结果的有效性(写明判断理由)。
①5FH+8EH
②8AH-90H
3.已知使用DEBUG的r命令查看8086寄存器,如下所示(以十六进制形式表示):
AX=0025 BX=B003 CX=E2F1 DX=0107 SP=0000 BP=0012 SI=F33E DI=5000
DS=0700 ES=0700 SS=0710 CS=0710 IP=5000 NV UP EI PL NZ NA PO NC
写出下列指令的寻址方式,并计算指令中操作数的有效地址EA和物理地址PA
①MOV DS:[BX],AL ②MOV DS:[BP-1FH],AX
③MOV DS:2H[DI],AX ④MOV ES:3H[DI][BP],AX
4.8086汇编程序中一个数据段定义如下所示,已知该数据段的段地址是148FH,画出该数据段在8086存储器中的存储分配情况。
DATASEG SEGMENT
DB 2 dup(2,"2",‘2’)
NUM-DW DW $+2
DW 222
DATASEG ENDS
5.一段8086汇编程序如下所示,编译后发现3个语法错误,划出错误的语句并写明原因
CODESEG SEGMENT
ASSUM CS:CODESEG
MOV SI,20000
START:
add dl,'E'
MOV ds,200h
add ds:[ax],bl
test dl,dl
MOV bx,EFH
EXIT:
MOV AX,4C00h
INT 21h
CODESEG ENDS
END START
6.8086汇编源程序如下所示,填写出每条指令执行后相关寄存器(除CS和IP外)及存储器相关单元的变化情况。
CODESEG SEGMENT
ASSUM CS:CODESEG
START:
MOV DS:[0002H],DX
DEC BX
ADD DL,DH
OR CH,CH
PUSH AX
CODESEG ENDS
END START
已知程序运行前,使用DEBUG工具的r命令查看8086寄存器,8086寄存器的初始状态如下所示(以下数据均以十六进制形式表示)
AX=0025 BX=B003 CX=E2F1 DX=0107 SP=0000 BP=0012 SI=F33E DI=5000
DS=0700 ES=0700 SS=0710 CS=0710 IP=5000 NV UP EI PL NZ NA PO NC
序号 指令 指令执行后相关寄存器(除CS和IP外)
及存储器相关单元的变化情况
① MOV DS:[0002H],DX
② DEC BX
③ ADD DL,DH
④ OR CH,CH
⑤ PUSH AX
7.编写程序,要求把BX加上-4,除以CL,并把其商乘以2,最后的记过存入DX中,假定以上运算都是有符号数运算。
8.编写程序,计算下列函数值:
10+X,X<10
Y= 3X,10≤X≤16
X-10,X>16
其中X和Y是数据段DATASEG中的无符号字节变量
9.编写程序,计算(-3) ^6(-3的六次方),并将结果保存在数据段DATASEG的双子变量Z中。 展开
①如果将其视为无符号数,其值是多少?(用十进制形式表示,写明计算过程)
并写出其等值扩展的16位形式。
②如果将其视为有符号数,其值是多少?(用十进制形式表示,写明计算过程)
并写出其等值扩展的16位形式。
2.完成下列8位数的运算,写出运算结果(写明计算过程),并判断分别作为无符号数和有符号数时运算结果的有效性(写明判断理由)。
①5FH+8EH
②8AH-90H
3.已知使用DEBUG的r命令查看8086寄存器,如下所示(以十六进制形式表示):
AX=0025 BX=B003 CX=E2F1 DX=0107 SP=0000 BP=0012 SI=F33E DI=5000
DS=0700 ES=0700 SS=0710 CS=0710 IP=5000 NV UP EI PL NZ NA PO NC
写出下列指令的寻址方式,并计算指令中操作数的有效地址EA和物理地址PA
①MOV DS:[BX],AL ②MOV DS:[BP-1FH],AX
③MOV DS:2H[DI],AX ④MOV ES:3H[DI][BP],AX
4.8086汇编程序中一个数据段定义如下所示,已知该数据段的段地址是148FH,画出该数据段在8086存储器中的存储分配情况。
DATASEG SEGMENT
DB 2 dup(2,"2",‘2’)
NUM-DW DW $+2
DW 222
DATASEG ENDS
5.一段8086汇编程序如下所示,编译后发现3个语法错误,划出错误的语句并写明原因
CODESEG SEGMENT
ASSUM CS:CODESEG
MOV SI,20000
START:
add dl,'E'
MOV ds,200h
add ds:[ax],bl
test dl,dl
MOV bx,EFH
EXIT:
MOV AX,4C00h
INT 21h
CODESEG ENDS
END START
6.8086汇编源程序如下所示,填写出每条指令执行后相关寄存器(除CS和IP外)及存储器相关单元的变化情况。
CODESEG SEGMENT
ASSUM CS:CODESEG
START:
MOV DS:[0002H],DX
DEC BX
ADD DL,DH
OR CH,CH
PUSH AX
CODESEG ENDS
END START
已知程序运行前,使用DEBUG工具的r命令查看8086寄存器,8086寄存器的初始状态如下所示(以下数据均以十六进制形式表示)
AX=0025 BX=B003 CX=E2F1 DX=0107 SP=0000 BP=0012 SI=F33E DI=5000
DS=0700 ES=0700 SS=0710 CS=0710 IP=5000 NV UP EI PL NZ NA PO NC
序号 指令 指令执行后相关寄存器(除CS和IP外)
及存储器相关单元的变化情况
① MOV DS:[0002H],DX
② DEC BX
③ ADD DL,DH
④ OR CH,CH
⑤ PUSH AX
7.编写程序,要求把BX加上-4,除以CL,并把其商乘以2,最后的记过存入DX中,假定以上运算都是有符号数运算。
8.编写程序,计算下列函数值:
10+X,X<10
Y= 3X,10≤X≤16
X-10,X>16
其中X和Y是数据段DATASEG中的无符号字节变量
9.编写程序,计算(-3) ^6(-3的六次方),并将结果保存在数据段DATASEG的双子变量Z中。 展开
6个回答
2012-06-03
展开全部
1,① 176(0000000010110000) (过程 B=11,11乘16得176) ② -80(1111111110110000)(最高位为符号,其余位求补(取反加以)得出1010000,5乘以16得80)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1: 带了16进制的符号 不写H在后面 本身就是个错误
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
分成小题,再来提问。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-02-07
展开全部
别总是找人做作业。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询