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