最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

微机原理与接口技术习题答案3

IT圈 admin 26浏览 0评论

2024年6月6日发(作者:倪雨筠)

第3章 8086CPU指令系统

1. 写出完成以下要求的变量定义语句:

〔1〕在变量var1中保存6个字变量:4512H,4512,-1,100/3,10H,65530;

〔2〕在变量var2中保存字符串:’BYTE’, ’word’, ’WORD’;

〔3〕在缓冲区buf1中留出100个字节的存储空间;

〔4〕在缓冲区buf2中,保存5个字节的55H,再保存10个字节的240,并将这一过程

重复7次;

〔5〕在变量var3中保存缓冲区buf1的长度;

〔6〕在变量pointer中保存变量var1和缓冲区buf1的偏移地址。

解:var1

var2

buf1

buf2

var3

DW

DB

DB

DB

DB

4512H,4512,-1,100/3,10H,65530

’BYTE’,’word’,’WORD’

100 DUP〔?〕

7 DUP〔5 DUP〔55H〕,10 DUP〔240〕〕

LENGTH buf1

var1,buf1 〔或者pointer DW OFFSET var1,OFFSET buf1〕 pointer DW

2. 设变量var1的逻辑地址为0100:0000,画出以下语句定义的变量的存储分配图:

var1 DB 12,-12,20/6,4 DUP〔0,55H〕

var2 DB ‘Assemble’

var3 DW ‘AB’, ‘cd’, ‘E’

var4 DW var2

var5 DD var2

解:

3. 指令正误判断,对正确指令写出源和目的操作数的寻址方式,对错误指令指出原因〔设

VAR1, VAR2为字变量, L1为标号〕:

〔1〕MOV SI,100

〔3〕MOV AX, [BX]

〔5〕MOV BP, AL

〔7〕MOV CS, AX

〔9〕MOV [BX][SI], 1

〔11〕ADD AX, LENGTH VAR1

〔13〕SUB [DI], 78H

〔15〕PUSH 100H

〔17〕XCHG AX, ES

〔19〕JMP L1+5

〔21〕SHL BL, 2

〔23〕MUL CX

〔25〕ADC CS:[0100], AH

解:〔1〕MOV SI,100

〔2〕MOV BX,VAR1[SI]

〔4〕MOV AL, [DX]

〔6〕MOV VAR1, VAR2

〔8〕MOV DS, 0100H

〔10〕MOV AX, VAR1+VAR2

〔12〕OR BL, TYPE VAR2

〔14〕MOVS VAR1, VAR2

〔16〕POP CS

〔18〕MOV DS, CS

〔20〕DIV AX, 10

〔22〕MOV AL, 15+23

〔24〕XCHG CL, [SI]

〔26〕SBB VAR1-5,154

正确。源:立即数寻址, 目的:寄存器寻址

正确。源:寄存器相对寻址, 目的:寄存器寻址

正确。源:寄存器间接寻址,目的:寄存器寻址

错误。寄存器间接寻址时,DX, AX, CX不能作地址寄存器

错误。操作数类型不一致

错误。两存储单元之间不能用MOV指令传送数据

〔2〕MOV BX,VAR1[SI]

〔3〕MOV AX,[BX]

〔4〕MOV AL,[DX]

〔5〕MOV BP,AL

〔6〕MOV VAR1,VAR2

2024年6月6日发(作者:倪雨筠)

第3章 8086CPU指令系统

1. 写出完成以下要求的变量定义语句:

〔1〕在变量var1中保存6个字变量:4512H,4512,-1,100/3,10H,65530;

〔2〕在变量var2中保存字符串:’BYTE’, ’word’, ’WORD’;

〔3〕在缓冲区buf1中留出100个字节的存储空间;

〔4〕在缓冲区buf2中,保存5个字节的55H,再保存10个字节的240,并将这一过程

重复7次;

〔5〕在变量var3中保存缓冲区buf1的长度;

〔6〕在变量pointer中保存变量var1和缓冲区buf1的偏移地址。

解:var1

var2

buf1

buf2

var3

DW

DB

DB

DB

DB

4512H,4512,-1,100/3,10H,65530

’BYTE’,’word’,’WORD’

100 DUP〔?〕

7 DUP〔5 DUP〔55H〕,10 DUP〔240〕〕

LENGTH buf1

var1,buf1 〔或者pointer DW OFFSET var1,OFFSET buf1〕 pointer DW

2. 设变量var1的逻辑地址为0100:0000,画出以下语句定义的变量的存储分配图:

var1 DB 12,-12,20/6,4 DUP〔0,55H〕

var2 DB ‘Assemble’

var3 DW ‘AB’, ‘cd’, ‘E’

var4 DW var2

var5 DD var2

解:

3. 指令正误判断,对正确指令写出源和目的操作数的寻址方式,对错误指令指出原因〔设

VAR1, VAR2为字变量, L1为标号〕:

〔1〕MOV SI,100

〔3〕MOV AX, [BX]

〔5〕MOV BP, AL

〔7〕MOV CS, AX

〔9〕MOV [BX][SI], 1

〔11〕ADD AX, LENGTH VAR1

〔13〕SUB [DI], 78H

〔15〕PUSH 100H

〔17〕XCHG AX, ES

〔19〕JMP L1+5

〔21〕SHL BL, 2

〔23〕MUL CX

〔25〕ADC CS:[0100], AH

解:〔1〕MOV SI,100

〔2〕MOV BX,VAR1[SI]

〔4〕MOV AL, [DX]

〔6〕MOV VAR1, VAR2

〔8〕MOV DS, 0100H

〔10〕MOV AX, VAR1+VAR2

〔12〕OR BL, TYPE VAR2

〔14〕MOVS VAR1, VAR2

〔16〕POP CS

〔18〕MOV DS, CS

〔20〕DIV AX, 10

〔22〕MOV AL, 15+23

〔24〕XCHG CL, [SI]

〔26〕SBB VAR1-5,154

正确。源:立即数寻址, 目的:寄存器寻址

正确。源:寄存器相对寻址, 目的:寄存器寻址

正确。源:寄存器间接寻址,目的:寄存器寻址

错误。寄存器间接寻址时,DX, AX, CX不能作地址寄存器

错误。操作数类型不一致

错误。两存储单元之间不能用MOV指令传送数据

〔2〕MOV BX,VAR1[SI]

〔3〕MOV AX,[BX]

〔4〕MOV AL,[DX]

〔5〕MOV BP,AL

〔6〕MOV VAR1,VAR2

发布评论

评论列表 (0)

  1. 暂无评论