1源操作数与目的操作数类型不匹配.docx
- 文档编号:24660011
- 上传时间:2023-05-30
- 格式:DOCX
- 页数:16
- 大小:16.85KB
1源操作数与目的操作数类型不匹配.docx
《1源操作数与目的操作数类型不匹配.docx》由会员分享,可在线阅读,更多相关《1源操作数与目的操作数类型不匹配.docx(16页珍藏版)》请在冰豆网上搜索。
1源操作数与目的操作数类型不匹配
6.1
(1)源操作数与目的操作数类型不匹配
(2)两个操作数同为内存操作数
(3)两个操作数同为内存操作数
(4)操作数不是16位
(5)目的操作数是立即数
(6)用CS作目的操作数
(7)指令中移位次数大于1
(8)给段寄存器DS直接送立即数
(9)在两个段寄存器之间传送数据
(10)源操作数、目的操作数类型不匹配
6.2
(1)(DX)=0096H
(2)(DX)=0069H
(3)(DX)=00FFH
(4)(DX)=00EEH
(5)(DX)=0008H
(6)(DX)=00F7H
6.3
(1)(BX)=06CBH
(2)(BX)=65A8H
(3)(BX)=B65AH
(4)(BX)=A9B2H
6.4
(1)(SP)=0FFCH
(2)(SP)=1000H,(AX)=5678H
6.5
(AF)=0,(CF)=0,(OF)=0,(PF)=0,(SF)=0,(ZF)=0
6.6
(1)DATASEGMENT
wDB10H
XDB20H
ZDB30H
DATAENDS
STASEGMENTSTACK
DB100DUP(?
)
STAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,z
SUBAL,X
SUBAL,w
MOVz,AL
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
(2)DATASEGMENT
wDB30H
yDB20H
rDB10H
zDB?
DATAENDS
STASEGMENTSTACK
DB100DUP(?
)
STAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,w
ADDy,6
ADDr,3
SUBAL,y
SUBAL,r
MOVz,AL
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
(3)DATASEGMENT
aDB02H
bDB10H
cDW?
DATAENDS
STASEGMENTSTACK
DB100DUP(?
)
STAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,a
MULb
MOVc,AX
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
(4)DATASEGMENT
aDB02H
bDB10H
cDB06H
sDW?
DATAENDS
STASEGMENTSTACK
DB100DUP(?
)
STAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,c
MULc
MOVBX,AX
MOVAL,a
MULb
SUBAX,BX
MOVS,AX
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
(5)DATASEGMENT
aDB02H
bDB10H
cDW?
DATAENDS
STASEGMENTSTACK
DB100DUP(?
)
STAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,a
CBW
DIVb
MOVc,AX
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
(6)DATASEGMENT
xDB02H
yDB10H
wDB?
DATAENDS
STASEGMENTSTACK
DB100DUP(?
)
STAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,x
SUBAL,2
SHRAL,1
ADDAL,y
MOVw,AL
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
6.7解:
提示:
该问题可直接通过分支程序进行三个数的比较,先作流程图,根据条件决定程序流向。
在此借助“冒泡排序”的思想,从第一个数开始,依次将第一个存储单元的数和第二个存储单元的数比较,第二个存储单元的数和第三个存储单元的数比较,若低地址单元的数大于高地址单元的数,则进行交换,否则继续比较。
采用循环程序嵌套,外层循环控制比较的次数,内层循环控制比较的个数。
DATASEGMENT
DATA1DB30H,20H,40H
DATAENDS
STASEGMENTSTACK
DB100DUP(?
)
STAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STA
START:
MOVAX,DATA
MOVDS,AX
MOVCX,3
LEASI,DATA1
MOVBL,0FFH;设置交换标志
L1:
CMPBL,0FFH
JNZOVER
MOVBL,00H
DECCX
JZOVER
PUSHSI
PUSHCX
L2:
MOVAL,[SI]
INCSI
CMPAL,[SI]
JBL3
XCHGAL,[SI]
MOV[SI-1],AL
MOVBL,0FFH
L3:
LOOPL2
POPCX
POPSI
JMPL1
OVER:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
6.8该问题用条件循环程序实现。
DATASEGMENT
nDW?
DATAENDS
STASEGMENTSTACK
DB100DUP(?
)
STAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STA
START:
MOVAX,DATA
MOVDS,AX
MOVAX,1
MOVBX,2
L:
CMPAX,100
JAEL1
ADDAX,BX
DAA
INCBX
JMPL
L1:
DECBX
MOVn,BX
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
6.9分析:
该问题用循环程序实现,循环的次数为100。
因为是1~100的累加,所以用循环计数器CX作源操作数,循环初值为100。
DATASEGMENT
SUMDW?
DATAENDS
STASEGMENTSTACK
DB100DUP(?
)
STAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STA
START:
MOVAX,DATA
MOVDS,AX
MOVCX,100
MOVAX,0
LOOP1:
ADDAX,CX
DAA
LOOPLOOP1
MOVSUM,AX
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
6.10分析:
该问题是一个不固定循环次数的循环程序,需要配合条件测试,测试存储区域中的数据是否为0。
DATASEGMENT
BUFFDB5,1,0,6,8,4
ANSDB?
DATAENDS
STASEGMENTSTACK
DB100DUP(?
)
STAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
LEABX,BUFF;取存储区首地址
L:
MOVAL,[BX];取第1个数
INCBX
CMPAL,0;测试取出的数是否为0
JNEL;不为0,转L处,继续取下一个数
MOVAL,[BX];将0数据后的字节单元内容送ANS
MOVANS,AL
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
6.11
(1)该程序的功能是选择数据区中最大的数。
运行结果是:
THERESULTIS:
9
(2)该程序的功能是将内存中的数与55进行比较,并显示大于55的数。
运行结果是:
60isaboveto55
6.12解:
DATASEGMENT
XDB01H
YDB03H
ZDB10H
MINDB?
DATAENDS
STASEGMENTSTACK‘STACK’
DB100DUP(?
)
STAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,X
CMPAL,Y
JBLP1
MOVAL,Y
CMPAL,Z
JBNEXT
LP2:
MOVAL,Z
JMPNEXT
LP1:
CMPAL,Z
JNBLP2
NEXT:
MOVMAX,AL
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
6.13解:
DATASEGMENT
BUF1DB01H,04H,05H,08H,12H,15H,14H,10H
BUF2DB8DUP(?
)
COUNTEQU$-BUF1
DATAENDS
STASEGMENTSTACK
DB100DUP(?
)
STAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STA,ES:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
LEASI,BUF1
LEADI,BUF2
MOVCX,COUNT
CLD
REPMOVSB
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
6.14解:
DATASEGMENT
nEQU10
RESDW?
DATAENDS
STASEGMENTSTACK
DB100DUP(?
)
STAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STA
START:
MOVAX,DATA
MOVDS,AX
MOVCX,n
MOVAX,0
CALLSUM
MOVRES,AX
MOVAH,4CH
INT21H
SUMPROC
LOOP1:
ADDAX,CX
LOOPLOOP1
RET
SUMENDP
CODEENDS
ENDSTART
6.15解:
DATASEGMENT
STRDB‘STUDENT’
COUNTEQU$-STR
LARGEDB?
SMALLDB?
DATAENDS
STASEGMENTSTACK
DB100DUP(?
)
STAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
LEASI,STR
MOVCX,COUNT
CALLMAX
MOVLARGE,AL
CALLMIN
MOVSMALL,AL
MOVAH,4CH
INT21H
MAXPROC
MOVAL,[SI]
INCSI
LOOP1:
CMPAL,[SI]
JBL1
INCSI
LOOPLOOP1
L1:
MOVAL,[SI]
INCSI
LOOPLOOP1
RET
MAXENDP
MINPROC
MOVAL,[SI]
INCSI
LOOP1:
CMPAL,[SI]
JAL2
INCSI
LOOPLOOP1
L2:
MOVAL,[SI]
INCSI
LOOPLOOP1
RET
MINENDP
CODEENDS
ENDSTART
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作 目的 类型 匹配
![提示](https://static.bdocx.com/images/bang_tan.gif)