微机原理与接口技术课后答案详解(黄玉清版)(3)

2018-11-27 10:09

ADDAX,Y MOVBX,0AH MULBX ADDAX,Z ADCDX,0H MOVBX,X DIVBX

MOVRESULT,AX MOVRESULT+2,DX HLT

3.28用简单指令编程求-3/2=?,将商存DL,余数存DH单元。用TD调试后,写出DL,DH的内容。 【答】参考程序:

MOVAL,-3

CBW MOVBL,2 IDIVBL MOVDL,AL MOVDH,AH HLT

(以上参考答案由黄玉清整理)

习题四汇编语言程序设计

主要内容:汇编语言程序设计。主要介绍汇编语言程序的设计方法与编程原理,重点掌握算术运算 程序、字符串处理程序、码制转换程序、子程序设计程序、常用DOS和BIOS功能调用程序、汇编语言 常用伪指令。

4.1分析执行下列指令序列后的结果: 1)MOVAX,1234H

MOVBX,00FFH ANDAX,BX

【答】(AX)=0034H

2)MOVAL,01010101B

ANDAL,00011111B;(AL)=00010101B ORAL,11000000B;(AL)=11010101B XORAL,00001111B;(AL)=11011010B NOTAL

【答】(AL)=00100101B 3)MOVDL,05H

MOVAX,0A00H MOVDS,AX MOVSI,0H MOVCX,0FH

AGAIN:INCSI

CMP[SI],DL

LOOPNEAGAIN HLT

本程序实现了什么功能?

【答】在以0A001H开始的15个单元中查找05H。 4)MOVAX,DSEGADDR

MOVDS,AX MOVES,AX

MOVSI,OFFSETB1ADDR MOVDI,OFFSETB2ADDR MOVCX,N CLD

REPMOVSB HLT

本程序实现了什么功能?

【答】将B1ADDR中N个字节数据传送到B2ADDR开始的15个存储单元。 5)MOVAX,0H

MOVDS,AX MOVES,AX MOVAL,05H MOVDI,0A000H MOVCX,0FH CLD

AGAIN:SCASB

LOOPNEAGAIN HLT

本程序实现了什么功能?

【答】从地址0A000H开始的15个单元中查找字节型数据05H,用条件循环LOOPNZ,控制数据05H 的查找。 4.2阅读程序: 1).CLD

LEADI,[0100H] MOVCX,0080H XORAX,AX REPSTOSW

本程序实现了什么功能?

【答】将DS中起始地址为0100H的128个字节单元清零。 2).MOVAL,08H

SALAL,01H;(AL)=00010000H MOVBL,AL MOVCL,02H

SALAL,CL;(AL)=01000000H ADDAL,BL;(AL)=01010000H 本程序实现了什么功能?

【答】将AL中的内容乘以10。

4.3试分析下列程序完成什么功能?

MOVDX,3F08H MOVAH,0A2H MOVCL,4

SHLDX,CL;(DX)=F080H MOVBL,AH

SHLBL,CL;(BL)=20H SHRBL,CL;(BL)=02H ORDL,BL;(DL)=82H

【答】将DX中的低4位数据8H分离出来,将AH中的低4位数据2H分离出来,合并为82H存放在 DL。

4.4已知程序段如下:

MOVAX,1234H MOVCL,4 ROLAX,CL DECAX MOVCX,4 MULCX

试问:(1)每条指令执行后,AX寄存器的内容是什么?(2)每条指令执行后,CF,SF及ZF的 值分别是什么?(3)程序运行结束时,AX及DX寄存器的值为多少? 【答】MOVAX,1234H;(AX)=1234H,CF=SF=ZF=0

MOVCL,4

ROLAX,CL;(AX)=2341H,CF=1,SF=ZF=0 DECAX;(AX)=2340H,CF=1,SF=ZF=0 MOVCX,4;

MULCX;(AX)=8000H,CF=ZF=0,SF=1,DX=0

4.5试分析下列程序段:

ADDAX,BX JNCL2

SUBAX,BX JNCL3

JMPSHORTL5

如果AX、BX的内容给定如下:

AXBX

(1)14C6H80DCH(程序转向L2)

(2)B568H54B7H(程序转向SHORTL5)

问该程序在上述情况下执行后,程序转向何处? 【答】(1)程序转向L2。

(2)程序转向SHORTL5。

4.6以下为某个数据段,试问各个变量分别占多少字节,该数据段共占多少字节?

DATASEGMENT VAR1DW9;2字节

VAR2DD10DUP(?),2;44字节

VAR3DB2DUP(?,10DUP(?));22字节 VAR4DB?HOWAREYOU';11字节 DATAENDS

【答】该数据段共占79字节。

4.7下列语句在存储器中分别为变量分配多少字节空间?并画出存储空间的分配图。

VAR1DB10,2;2字节

VAR2DW5DUP(?),0;12字节

VAR3DB?HOWAREYOU?',?$';13字节 VAR4DD-1,1,0;2字节 Var1Var2Var3Var4 10?HFFH 2?O00H

?W00H ?00H ?A01H ?R00H ?E00H ?00H ?Y00H ?O00H 0U00H 0?00H

$ 4.8编写一段程序,比较两个5字节的字符串OLDS和NEWS,若相同,在RESULT置0,否则置0FFH。 【答】参考程序:

OLDSDB1,2,3,4,5 NEWSDB1,2,3,4,5 RESULTDB?

MOVSI,OFFSETOLDS MOVDI,OFFSETNEWS MOVCX,10

CLD

REPCMPSB

JNZNOEQU;串不相等转 MOVAL,0 JMPOUTPT

NOEQU:MOVAL,0FFH OUTPT:MOVRESULT,AL STOP:JMPSTOP

4.9编程求和Y=A1+A2+….+A100。其中Ai为字节变量。 【答】参考程序: DATASEGMENT

TABLEDW12,3,45,.. YALDW? YAHDW? DATAENDS

……….

MIANPROCFAR

PUSHDS MOVAX,0 PUSHAX

MOVAX,DATA MOVDS,AX MOVDX,0

XORAX,AX;清AX

MOVBX,OFFSETTABLE MOVCX,4 CLC

LP:ADDAX,[BX];求和

JNCDON INCDX CLC

DON:INCBX

INCBX;指向下一个数 LOOPLP;未加完,继续 MOVYAL,AX;存和 MOVYAH,DX

MAINENDP CODEENDS

ENDSTART

4.10内存中以FIRST和SECOND开始的单元中分别存放着两个16位组合的十进制(BCD码)数,低位在 前。编程序求这两个数的组合的十进制和,并存到以THIRD开始的单元。 【答】参考程序:1325+9839=? DATASEGMENT

FIRSTDB05H,02H,03H,01H; SECONDDB09H,03H,08H,09H; THIRDDB20DUP(?)

DATAENDS

STACKSEGMENT

ST1DB100DUP(?SA?)

TOP1EQUST1LENGTHST1

STACKENDS CODESEGMENT

ASUMMECS:CODE,DS:DATA,SS:STACK

MAINPROCFAR

START:MOVAX,DAT;初始化数据段

MOVDS,AX

MOVAX,STACK;初始化堆栈段 MOVSS,AX

MOVAX,TOP1 MOVSP,AX

MOVCX,4;计算4次

MOVBX,OFFSETDAT1;取数据地址 MOVSI,OFFSETDAT2;取数据地址 MOVDI,OFFSETSUM;取结果地址 MOVAH,00H;将暂存标志的AH清0

DON1:MOVAL,[BX];取第一个数

SAHF;将AH中的标志送标志寄存器 ADCAL,[DI];与第二个数带进位加 AAA;十进制校正

LAHF;将标志寄存器内容送AH ORAL,30H;计算值拼成ASCII码 MOV[DI],AL;存结果的ASCII码 INCBX;指向第一个数的下一位 INCSI;指向第二个数的下一位 INCDI;指向结果单元的下一位 LOOPDON1;未计算完,继续

ANDAH,01H;将最高位的进位标志送AH ORAH,30H;最高位的进位位拼成ASCII码 MOV[DI],AH;存结果的最高位

MOVAH,02H;调用DOS的02H功能显示 MOVCX,05H;显示数据的位数

DON2:MOVDL,[DI];显示数据送DL

INT21H;显示

DECDI;显示数据所在存储单元加一 LOOPDON2;未显示完,继续 MOVAH,4CH;返回DOS INT21H RET

MAINENDP CODEENDS

ENDSTART

4.11试编程序,统计由40000H开始的16K个单元中所存放的字符“A“的个数,并将结果存放在DX 中。

【答】参考程序 DATASEGMENT

DATA1DB'DFASFAAAFDFAAFFFA' COUNTEQU$-DATA1 DATAENDS

STACKSEGMENT

STADB100DUP(?)

TOPEQULENGTHSTA STACKENDS CODESEGMENT

ASSUMECS:CODE,DS:DATA,SS:STACK BEGIN:MOVAX,DATA

MOVDS,AX

MOVAX,STACK MOVSS,AX MOVAX,TOP MOVSP,AX

MOVCX,COUNT MOVDX,0 LEASI,DATA1 MOVBL,'A'

NEXT:CMP[SI],BL

JNZOTHER


微机原理与接口技术课后答案详解(黄玉清版)(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《国际私法(本科必修)》2014年7月期末试题及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: