微型计算机技版术(陈慈发)课后习题第4章作业答案

上传人:飞*** 文档编号:16302212 上传时间:2017-11-07 格式:DOC 页数:5 大小:39.54KB
返回 下载 相关 举报
微型计算机技版术(陈慈发)课后习题第4章作业答案_第1页
第1页 / 共5页
微型计算机技版术(陈慈发)课后习题第4章作业答案_第2页
第2页 / 共5页
微型计算机技版术(陈慈发)课后习题第4章作业答案_第3页
第3页 / 共5页
微型计算机技版术(陈慈发)课后习题第4章作业答案_第4页
第4页 / 共5页
微型计算机技版术(陈慈发)课后习题第4章作业答案_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《微型计算机技版术(陈慈发)课后习题第4章作业答案》由会员分享,可在线阅读,更多相关《微型计算机技版术(陈慈发)课后习题第4章作业答案(5页珍藏版)》请在金锄头文库上搜索。

1、3.52 比较 AX 和 BX 中两个无符号数的大小,若 AXBX,则将 SI 中的高 8 位和低 8 位交换;若 AX=BX,则将 SI 中的高 7 位置 1;若 AXSI,则用SI取代 ALNEXT: LOOP CYCLEMOV DS:3300H,AL ;编译器会认为3300H就是 3300H,故在前面加 DS:MOV AH,4CHINT 21HCODE ENDSEND START3.58 编写将内存以 ES:1000H 开始的 256 个字节单元清零的程序。CODE SEGMENTASSUME CS:CODESTART: MOV SI,1000HMOV CX,256CYCLE: MOV

2、SI,BYTE PTR 0INC SILOOP CYCLEMOV AH,4CHINT 21HCODE ENDSEND START用串操作指令实现:CODE SEGMENTASSUME CS:CODESTART: MOV DI,1000H ;给目的串首地址赋初值MOV AL,0 ;用 0 来初始化MOV CX,256 ;循环 256 次CLD ;地址从小到大变化REP STOSB ;用 AL 中的值对指定的目的串初始化MOV AH,4CHINT 21HCODE ENDSEND START3.59 试编写程序,统计以 DS:8000H 为起始地址的连续 200 个字节单元中的 0 的个数。CODE

3、 SEGMENTASSUME CS:CODESTART: MOV AX,0 ;用 AX 统计 0 的个数MOV CX,200 ;循环 200 次MOV SI,8000H ;通过 SI 间接访问内存 DS:8000H 开始的存储单元CYCLE: CMP BYTE PTR SI,0JNZ NEXTINC AXNEXT: INC SILOOP CYCLEMOV AH,4CHINT 21HCODE ENDSEND START4.5 程序中数据定义如下:DATA1 DW ?DATA2 DB 32 DUP(?)DATA3 DD ?DLENGTH EQU $-DATA1试问 DLENGTH 的值是多少?DL

4、ENGTH=384.6 在某程序中需要为一个变量 BUF 预留 500 个字节的存储空间,请写出相应的指令,如果要预留 500 个字的存储空间呢?BUF DB 500 DUP(?)BUF DW 500 DUP(?)4.7 程序中数据定义如下:BUFFERB DB ABCDEFRESULT DB ?BUFFERW DW 30 DUP(?)写出以下指令的执行结果:MOV AX, TYPE RESULT ; AX=1MOV BX, TYPE BUFFERW ; BX=2MOV CX, LENGTH BUFFERB ; CX=1MOV DX, LENGTH BUFFERW ; DX=30MOV AX,

5、 SIZE RESULT ; AX=1MOV BX, SIZE BUFFERW ; BX=604.11 设 BX=1103H,则执行下列指令后 AX 和 CX 各为多少?若 BX=03H,则结果又如何?MOV AX, BX AND 0FFHMOV CX, BX EQ 1103HBX=1103HAX=0003H,CX=0FFFFHBX=03HAX=0003H,CX=04.13 两个 ASCII 码数串定义如下:STR1 DB 352678STR2 DB 123400编写程序段,计算 STR1+STR2,要求结果仍然是 ASCII 码串。DATA SEGMENTSTR1 DB 352678STR2

6、 DB 123400STR DB 6 DUP (?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXLEA SI,STR1+5 ;SI 指向 STR1 的最后一个元素LEA DI,STR2+5 ;DI 指向 STR2 的最后一个元素LEA BX,STR+5 ;BX 指向 STR 的最后一个元素MOV CX,6 ;循环 6 次CLC ;初始认为最低位没有进位CYCLE: MOV AL,SIMOV AH,DIADC AL,AH ;将对应的两个 ASCII 码相加AAA ;修正,仅仅取运算结果的低 4 位RC

7、R DX,1 ;保护进位标志OR AL,30H ;将所有的数值转换为对应的 ASCII 码SHL DX,1 ;恢复进位标志MOV BX,AL ;将所求的 ASCII 码送给 STR 的相应元素DEC SI ;SI 指向前一个数DEC DIDEC BXLOOP CYCLEMOV AH,4CHINT 21HCODE ENDSEND START4.14 下面程序段是实现从键盘输入 10 个一位十进制数累加。最后累加和以非压缩 BCD 码形式存放在 AH(高位)和 AL(低位)中。试把程序段中所空缺的指令填上。XOR BX, BXMOV CX,10LOP: MOV AH, 01H ;键盘字符输入INT

8、 21HSUB AL, 30HMOV DL, ALMOV AX, BXADD AL, DLAAAMOV BX, AXLOOP LOP4.18 将内存中某数据块的正数和负数分开,并分别将这些正数和负数送同一数据段的两个缓冲区中,并在屏幕上显示正数和负数的个数。DATA SEGMENTBUF DB 12,15,-2,3,-7,-8,19,-25N=$-BUFBUF1 DB N DUP(?) ;存放正数BUF2 DB N DUP(?) ;存放负数DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXLEA BX,B

9、UF ;BX 指向 BUFLEA SI,BUF1 ;SI 指向存放正数的缓冲区 BUF1LEA DI,BUF2 ;DI 指向存放负数的缓冲区 BUF2MOV CX,N ;循环 N 次MOV DX,0 ;DH 表示负数的个数, DL 表示正数的个数,都清零CYCLE: MOV AL,BX ;将 BX 指向的数送给 ALCMP AL,0 ;比较 AL 与 0 的大小JG GREAT ;AL0,则转移至 GREATMOV DI,AL ;AL0,将 AL 存入正数的数组INC DL ;正数的个数加 1INC SI ;SI 指向下一个负数NEXT: INC BX ;判断下一个数LOOP CYCLEADD DL,30H ;将正数的个数变成字符输出MOV AH,2INT 21HADD DH,30H ;将负数的个数变成字符输出MOV DL,DHMOV AH,2INT 21HMOV AH,4CHINT 21HCODE ENDSEND START

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 其它考试类文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号