汇编语言第一次作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

姓名:薛锦利

学号:14710074

汇编语言第一次作业

1、以下常用的十进制数转换为二进制数和十六进制数:

3 2 7 6 7 D 2 5 5 D

6 5 5 3 5 D

答:

32767 D=111111********* B =7FFF H

255 D=11111111 B =00FF H

65535 D=1111111111111111 B =FFFF H

2、回答问题

指令MOV AX,[BX+DI-2]

假设,(DS)=5000H,(BX)=1223H,(DI)=54H,(51275)=54H (51276)=76H

那么,存取的物理存储单元的地址是多少?

答:(AX)=7654H

3、假设(SS)=2250H,(SP)=0140H,

如果在堆栈中存入4个数据,则栈顶的物理地址为多少?

如果又从堆栈中取出2个数据,则栈顶的物理地址是多少?

答:

如果在堆栈中存入4个数据,则栈顶的物理地址为22640H;

如果又从堆栈中取出2个数据,则栈顶的物理地址是22638H。

4、假设(DS)=2000H, (ES)=2100H, (SS)=1500H, (SI)=00A0H,

(BX)=0100H(BP)=0010H,数据段中变量名VAL的偏移地址值为0050H, 试指出下列源操作数字段的寻址方式是什么?其物理地址值是多少?

(1) MOV AX, 0ABH

(2) MOV AX, BX

(3) MOV AX, [100H]

(4) MOV AX, VAL

(5) MOV AX, [BX]

(6) MOV AX, ES:[BX]

(7) MOV AX, [BP]

(8) MOV AX, [SI]

(9) MOV AX, [BX+10]

(10) MOV AX,VAL[BX]

(11) MOV AX, [BX][SI]

(12) MOV AX, VAL[BX][SI]

答:

1、Mov ax,0ABH 立即寻。没有物理地址

2、Mov ax,bx 寄存器寻,没有物理地址,ax=0100H

3、Mov ax,[100H] 直接寻物理地址=20000H+100H=20100H

4、Mov ax,VAL 直接寻物理地址=20000H+0050H=20050H

5、Mov ax,[bx] 寄存器间接寻物理地址

=20000H+0100H=20100H

6、Mov ax,ES:[bx] 寄存器间接寻物理地址=21000H+0100H=21100H

7、Mov ax,[BP] 寄存器间接寻段是SS 物理地址

=15000H+0010H=15010H

8、Mov ax,[SI] 寄存器间接寻物理地址

=20000H+00A0H=200A0H

9、Mov ax,[Bx+10] 寄存器相对寻物理地址=20000H+0100H+10=20110H

10、mov ax,VAL[Bx] 寄存器相对寻物理地址

=20000H+0050H+0100H=20150H

11、mov ax,[bx][SI] 基址加变址寻物理地址

=20000H+0100H+00A0H=201A0H

12、mov ax,VAL[bx][SI] 相对基址加变址物理地址

=20000H+0100H+00A0H+0050H=201F0H

5、一个有16个字的的数据区,它的起始地址为:

70B0:DDE6,请写出这个数据区首末字单元的物理地址

答:

70B0H*16+0DDE6H=7E8E6H

7E8E6H+(10H-1)=7E814H

6、试分析下列程序段执行完后,A单元的内容是多少?

Data segment

A dw 0

B dw 0

C dw 240, 20, 54

Data ends

Code segment

MOV BX, OFFSET C

MOV AX, [ BX ]

MOV B, AX

MOV AX,2[ BX ]

ADD AX, B

Code ends

答:

(1)10

(2)0

(4)260

(5)50

7、设当前数据段寄存器的内容为1B00H,在数据段的偏移地址2000H单元内,含有一个内容为0FF10H和8000H的指针,它们是一个16位变量的偏移地址和段地址,试写出把该变量装入AX的指令序列。

答:

MOV BX, [2000H]

MOV AX, [2000H+2]

MOV ES, AX

MOV AX, ES:[BX]

8、执行下列指令序列后,AX寄存器中的内容是什么?

TABLE DW 10,20,30,40,50

RETURN DW 3

MOV BX,OFFSET TABLE

ADD BX,RETURN

MOV AX,[BX]

答:

1E00

9、指出下列指令的错误:

MOV AH,BX ; MOV [BX],[SI]

MOV AX,[ SI ][ DI ] ; MOV CS,AX

CMP 15,BX ; CMP OP1,OP2 (OP1,OP2是已定义的字节变量)PUSH BL ; CMP AX,OP1

POP CS; MOV BYTE PTR[BX], 1000

答:

(1)分辨是单操作数还是双操作数;

(2)如果是双操作数,那么它是根据什么寻址方式;

(3)双操作数的目的操作数不能是立即数;

(4)两个操作数中必须有一个是寄存器(除了立即寻以外);

(5)双操作数中,代码段CS不能做目的操作数;

(6)最后检查两个操作数的类型是否匹配;

(7)如果是单操作数,栈操作都是以字为单位(16位寄存器和16位地址);(8)单操作数中,代码段CS不能做目的操作数;

10、在TABLE数组中依次存储了七个字数据,紧接着是名为ZERO的字单元,表示如下:

相关文档
最新文档