微型计算机原理王忠民课后参考答案汇编语言程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.画图说明下列语句所分配的存储空间及初始化情况。
(1)
42H59H54H45H00HEEH00H07H01H02H01H02H07H00H07H01H02H01H02H07H00H07H01H02H0 1H02H07H
(2)00H00H01H00H02H00H00H00H01H00H02H00H00H00H01H00H02H00H00H00H01H00H02H00H 00H00H01H00H02H00H07H00HFBHFFH59H42H45H54H02H56H
2.(PLENTH)=22H;它表示数据与的长度
3.(L)=06H
4.(1)MOVBXOFFSETLNAME
(2)MOVSIWORDPTRCODE_LIST
(3)MOVCODE_LENGTHEQU$-CODE_LIST
5.(AX)=10
(BL)=10
(CL)=1
6.(1).(AX)=1
(2).(AX)=2
(3).(CX)=20
(4).(DX)=40
(5).(CX)=1
7.是说明下列指令中那些需要加上PR伪指令定义符。
(1).不需要(2)不需要(3)SUB[BX],WORDBYTE2(或其他形式)(4).MOVCL,BYTEPTRWVAL
8.编一宏定义BXCHG,将一字节高4位和低4位交换。
BXCHGMARCOOPR
MOVAL,OPR
MOVCL,04H
ROLAH,CL
RORAL,CL
ORAH,AL
MOVOPR,AH
ENDM
9.已知宏定义,展开宏调用:OPPBH,BL,CH,CL
+MOVAX,BX
+XCHGAL,CL
+MOVAX,BL
+XCHGAL,CH
+MOVBL,AL
10.将寄存器中的16位数分成四组,每组四位,分别存放在AL,BL,CL和DL中。
MOVCH,04H
MOVCL,AL
MOVDL,AL
SHRCL,CH
ANDDL,AH
MOVAL,AH
MOVBL,AH
SHRAL,CH
ANDBL,0FH
11.试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示MATCH,若不相同则显示NOMATCH.
解:DATASEGMENT
STRING1DB‘ABCDE’
STRING2DB‘ABCDEF’
MESG1DB‘MATCH$’
MESG2DB‘MATCH$’
DATAENDS
STACKSEGMENT
BUFDB100DUP()
STACKENDS
CODESEGMENT
MAINPROCFAR
START:PUSHDS
MOVAX,0
PUSHAX
PUSHES
MOVAX,DATA
MOVDS,AX
MOVAL,STRING1
MOVCL,6
MOVSI,OFFSETSTRING1
MOVDI,OFFSETSTRING2
CLD
REPECMPSB
JZALLMATCH
MOVDXOFFSETMESG2
MOVAH,9
INT21H
RET
ALLMATCH:MOVDXOFFSETMESG1
MOVAH9
MOV21H
RET
MAINENDP
CODEENDS
ENDSTART
13.编写程序,将一个包含有20个数据的数组M分成两个数组,正数组P和负数组,分别把这两个数组中的数据的个数显示出来。
解:DATASEGMENT
MDB1,2,3,4,5,6,7,8,9,10
DB-1,-2,-3,-4,-5,-6,-7,-8,-9,-10
PDB20DUP()
NDB20DUP()
DATAENDS
CODESEGMENT
MAINPROCFAR
START:PUSHDS
MOVAX,0
PUSHAX
MOVAX,DATA
MOVDS,AX
MOVAL,0
MOVSIOFFSETM
MOVCX20H
LOOP1:MOVBL,M[SI]
CMPAL,M[SI
JAELOOP2
MOVN,BL
INCSI
CMPCX,20H
JZLOOP3
JMPLOOP1
LOOP2:DECCX
MOVP,BL
INCSI
CMPCX,20H
JZLOOP3
JMPLOOP1
LOOP3:MOVDX,OFFSETP
MOVAH,9
INT21H
MOVDX,OFFSETN
MOVAH,9
INT21H
RET
MAINENDP
CODEENDS
ENDSTART
20.编写程序,求字节变量BVAR中的压缩BCD数转换为二进制数,并存入原变量中。
解:DATASEGMENT
BVARDW53H,00H
DATAENDS
CODESEGMENT
MAINPROCFAR
ASSUMECS:CODE,DS:DATA
START:PUSHDS
MOVAX,0
PUSHDS,AX
MOVAX,DATA
MOVDS,AX
MOVAL,BYTEPTRSW
MOVAH,AL
ANDAX,0F00FH
MOVCL,4