傻大方


首页 > 学习 >

微型计算机|微型计算机原理应用第四版答案( 五 )



按关键词阅读: 原理 答案 微型计算机 第四 应用


故执行后标志为分一个数zfl=00; : CF=002 0000(2) 若AL、BL二个容是两个有符号数 , 00果又如何?影响哪几个标志位? 答:对有符号数 , 执行C000指令0后0影响ZF和OF标志位 , 不影响CF位 。
执行后标志位分别为ZF=0 OF=0第6章习题6.1 读下面程序段 , 请问:在什么情况下 , 本段程序的执行结果是AH= 0?BEGIN :IN A 。

28、L , 5FHTESTAL , 80HJZBRCHlMOVAH , 0JMPSTOPBRCHl :MOV AH , 0FFHSTOP : HLT解答:AL中的最高位为1时6.2 读程序:START :INAL , 20HMOVBL , alINAL , 30HMOVCL , alMOVAX , 0ADLOP :ADDAL , BLADCAH , 0DECCLJNZ ADLOPHLT请问:(1)本程序实现什么功能?(2) 结果在哪里?解答:完成20H*30H,结果在AX中 。
6.3请编一程序段完成AX*10的任务(要求不准用乘法指令做) 答:MOV BX,AXMOV CL 2SHL AX, CL:此句实现了 AX=AX*4ADD AX,BX 。

29、:此句使得 AX=5AXSHL AX ,1:此句实现了 5AX*2=10AX法二:MOV BX,AXMOV CL, 4SHL AX,CLSHL BX,1ADD AX,BX6.4 .编程序使:(1)AX寄存器低4位清零 。
BX寄存器低4位置“ 1” 。
(3) CX寄存器低4位变反 。
(4) 用TEST指令测试DL寄存器位3、位6是否同时为0,若是 , 将0送DL;
否则I送DH解答:(1) AND AX ,0FFF0H(2) OR BX ,000FH(3) XOR CX ,000FH 或者NOT CX(但这样CX的高4位也会变反)(4)TEST DL ,48HJZ LOOPMOV DH,1HLTLOOP : 。

30、MOV DL ,0HLT6.5 .编一程序段 , 完成符号函数(-128 0)、y= 0(x=0)I -1(x0)假设x的值存放在DATAl中 , y的值存放在DATA2K解答:START :MOV AL ,DATA1AND AL,ALJGE BIGRMOV AL,81H ;
即将-1 给 ALMOV DATA2, ALHLTBIGR: JE EQUL ;
结果为 0,转 EQULMOV AL,1MOV DATA2,ALHLTEQUL:MOV AL, OMOV DATA2,ALHLT6.6 .设AX寄存器中有一个16位二进制数 , 编一程序 , 统计 AX中“I”的个数 , 统计结 果送CX中 。
解答:START :。

31、MOV CX ,0LOOP1: CLCSUB AX,0 JZ STPSAL AX,1JNC NODINC CXNOD: JMP LOOP1;
CX清零也可用XOR CX CX实现;
CF清零;
此句也可用CMP AX,O替代;
此句也可用SHL AX,1替代STP: HLT6 . 7.编一子程序利用 XLAT指令把十六进制数转换成 ASCII码 。
假设ASCII码存放在 以DAT1为首地址的数据区中 , 对应的16进制数放在以DAT2为首地址的数据区中 , 转换 结果送以DAT3为首地址的数据区中 。
解答: SUBPROC PROCSUBPROC :PUSH BXPUSH SIPUSH DIPUSH CXPUSH 。

32、 ALPUSH DSSTART:MOV BXQATA1 ;
将首地址 DAT1送至U BX中 , 作为表的首地址MOV SI ,DAT2MOV DI DAT3MOV CX ,16NEST:LODSB;
读字节串 , 从地址为 SI的RAMS 16进制数到AX/ALXLAT ;
用换码指令XLAT将AX/AL中的16进制数转换成;
对应的 ASCII 码STOSB;
写字节串 , 从 AX/AL写到RAM即将转换成的 ASCII码送;
到目标地址 DI 处LOOP NEST ; CX =0,就转向NEST SI与DI都会自动增1 POP DSPOP ALPOP CXPOP DIPOP SIPOP BXRETSUBPRO 。

33、C ENDP本题重点:(1)所有的串操作指令 , 如 LODSB, STOSB?都用寄存器SI对源操作数进行 间接寻址;
都用寄存器 DI 为目的操作数进行间接寻址 。
( 2)在每次循环后 , 地址指针 SI 和 DI 都会受到修改;
(3)XLAT指令的用法 , 见教材P118,用BX给定首地址 , 用AL/AX给定偏移地址 , 再用 XLAT指令转换 。
第 7 章习题7.2 假设学生某门课程的成绩放在数据区中 , 请编一程序 , 统计该成绩中小于 60 分的人 数 ,6090分的人数 , 大于 90 分的人数 , 并显示在屏幕上 。
答:分析:假设学生成绩放在以 DATA伪首地址的数据区中 。
DATASEG SEGMENTDATA1 DB 。

34、 100 DUP (?)STRING1 DB The student number of grade is bigger than 90STRING2 DB The student number of grade is between 60 and 90STRING3 DB The student number of grade is less than 90DATASEG ENDSSS1 SEGEMENT STACK DW 30 DUP(?)SS1 ENDSCODE SEGMENTASSUME CS: CODE, DS:DATASEG, SS:SS1START: MOV AX, DATASE 。

35、GMOV DS, AXMOV SI, OFFSET DATA1MOV CL, 100(D);
将学生人数 100 赋给 CLXOR BX, BXXOR AX, AXXOR DX, DXA1:L1:L1:A2:MOV AX, SICMP AX, 90(D)JA L1CMP AX, 60(D)JAE L2INC CH ;
用CH保存小于60的人数JUMP A2INC BH;
用BH保存大于90的人数JUMP A2INC BL;
用 BL保存60至U 90的人数JUMP A2INC SILOOP A1在屏幕上输出各类人数MOV DX, OFFSET STRING1MOV AH, 9INT 21HMOV。

36、DL, CHMOV AH, 2INT 21H输出 60-90 的学生人数MOV DX, OFFSET STRING2MOV AH, 9MOV DL, BLMOV AH, 2INT 21H输出小于 60 的学生人数MOV DX, OFFSET STRING3MOV AH, 9MOV DL, BH MOV AH, 2 INT 21H;
程序完成 , 返回操作系统 , 结束MOV AH, 4CHINT 21HCODE ENDSEND START第八章习题8.1编一初始化程序 , 使8255A的PC端输出一个负跳变 。
如果要求 PC端输出一个负脉 冲 , 则初始化程序又是什么情况?答:(1)设置PC为负跳变(从1到0) 。

37、,即设置PC引脚为0值 , 其控制字应设置为: 0000 1010 (即 0AIH 。


稿源:(未知)

【傻大方】网址:/a/2021/0819/0023818019.html

标题:微型计算机|微型计算机原理应用第四版答案( 五 )


上一篇:排查|排查网线虚接故障的简单方法--设置EtherCAT主站和从站的

下一篇:临时|临时用电安全管理制度