編写程序段定义并初始化以下数据単元 : 数据段名mem1 类型字 内容1 2;数据段名mem2 类型半字 内

大学网课 已帮助 人

編写程序段定义并初始化以下数据単元 : 数据段名mem1,类型字,内容1,2;数据段名mem2,类型半字, 内容3, 4; 数据段名mem3, 类型双精度,内容5, 6; 数据段名mem4,类型字节,内容 "mem1" , "mem2" , "mem3" 。(思考4.3)

編写程序段定义并初始化以下数据単元 : 数据段名mem1 类型字 内容1 2;数据段名mem2 类型半字  内

热搜:关于持有待售资产的初始计量,以下表述

回答

共1条回复

  • (1)两条指令都是合法指令第一条指令取得NAMES的偏移地址第二条MOV指令使用间接寻址方式将地址为(DS)x 10H+(BX)+5字节中的数据传送给AL结果(AL)=20。 (2)这条指令不正确因为NAMES的属性为字节而目的寄存器是AX所以类型不匹配。 (3)为合法指令。指令中将已定义的字节变量用伪操作PTR改变为字类型所以避免了类型不匹配的错误。操作结果(AX)=4D4FH(即M和I O的ASCII码)。 (4)前两条指令使用的是立即寻址方式第三条指令的源操作数字段使用的是相对基址变址方式但形成的数据段地址中的数据属性为字节而源操作数据寄存器为AX故出现类型不匹配的错误。若将AX改为AL这条指令就是合法指令。 (5)前两条指令是正确的后两条指令有错误。在汇编过程中OFFSEI、操作将得到变量的偏移值但对相对基址变址寻址方式形成的值在汇编指令时还是未知的。同样MOV BXOFF-SET:NAMES[SI]也是错误指令。第四条指令中AX不能作为基址寄存器使用。 (6)均为合法指令。第三条指令中的DI取得一个字节地址:(BX)+(SI)+OFFSETNAMES然后再按DI 中的偏移地址在数据段中将一个字节的内容传送给AL寄存器。操作结果(AL)=30。 两条指令都是合法指令,第一条指令取得NAMES的偏移地址,第二条MOV指令使用间接寻址方式,将地址为(DS)x10H+(BX)+5字节中的数据传送给AL,结果(AL)=20。(2)这条指令不正确,因为NAMES的属性为字节,而目的寄存器是AX,所以类型不匹配。(3)为合法指令。指令中将已定义的字节变量用伪操作PTR改变为字类型,所以避免了类型不匹配的错误。操作结果(AX)=4D4FH(即M和IO的ASCII码)。(4)前两条指令使用的是立即寻址方式,第三条指令的源操作数字段使用的是相对基址变址方式,但形成的数据段地址中的数据属性为字节,而源操作数据寄存器为AX,故出现类型不匹配的错误。若将AX改为AL,这条指令就是合法指令。(5)前两条指令是正确的,后两条指令有错误。在汇编过程中,OFFSEI、操作将得到变量的偏移值,但对相对基址变址寻址方式形成的值在汇编指令时还是未知的。同样MOVBX,OFF-SET:NAMES[SI]也是错误指令。第四条指令中,AX不能作为基址寄存器使用。(6)均为合法指令。第三条指令中的DI取得一个字节地址:(BX)+(SI)+OFFSETNAMES,然后再按DI中的偏移地址,在数据段中将一个字节的内容传送给AL寄存器。操作结果(AL)=30。