微型计算机原理与接口技术冯博琴主编 - - - 课后答案

2026/4/27 11:29:20

(3) LEA SI,STRING ADD DI,SI

解:

取变量DATA1的值. 指令执行后,(AL)=10H.

变量DATA2的偏移地址. 指令执行后,(BX)=0003H.

(3)先取变量STRING的偏移地址送寄存器SI,之后送SI的内容与DI的内容相加并将结果送DI.指令执行后,(SI)=0017H;(DI)=(DI)+0017H.

4.3 试编写求两个无符号双子长数之和的程序. 两数分别在MEM1和MEM2单元中,和放在SUM单元. 解:

DSEG SEGMENT

MEM1 DW 1122H,3344H MEM2 DW 5566H,7788H SUM DW 2 DUP(?) DSEG ENDS

CSEG SEGMENT

ASSUME CS:CSEG,DS:DSEG START: MOV AX,DSEG MOV DS,AX LEA BX,MEM1 LEA SI,MEM2 LEA DI,SUM MOV CL,2 CLC

AGAIN: MOV AX,[BX] ADC AX,[SI] MOV [DI],AX ADD BX,2 ADD SI,2 ADD DI,2 LOOP AGAIN HLT

CSEG ENDS END START

4.4试编写程序,测试AL寄存器的第4位(bit4)是否为0?

解: 测试寄存器AL中某一位是否为0,可使用TEST指令、AND指令、移位指令等几种方法实现。 如:TEST AL,10H JZ NEXT . . .

NEXT:…

或者: MOV CL,4 SHL AL,CL JNC NEXT

.

NEXT:…

4.5 试编写程序,将BUFFER中的一个8位二进制数转换为ASCII码,并按位数高低顺序存放在ANSWER开始的内存单元中。 解:

DSEG SEGMENT BUFFER DB ?

ANSWER DB 3 DUP(?) DSEG ENDS

CSEG SEGMENT

ASSUME CS:CSEG,DS:DSEG START:MOV AX,DSEG MOV DS,AX

MOV CX,3 ;最多不超过3为十进制数(255) LEA DI, ANSWER ;DI指向结果存放单元 XOR AX,AX

MOV AL,BUFFER ;取要转换的二进制数 MOV BL,0AH ;基数10

AGAIN:DIV BL ;用除10取余的方法转换 ADD AH,30H ;十进制数转换成ASCII码 MOV [DI], AH ;保存当前的结果 INC DI ;指向下一个位保存单元

AND AL,AL ;商为0?(转换结束?) JZ STO ;若结束,退出 MOV AH,0

LOOP AGAIN ;否则循环继续 STO: MOV AX,4C00H INT 21H ;返回DOS CSEG ENDS END START

4.6 假设数据项定义如下:

DATA1 DB ?HELLO !GOOD MORNING !? DATA2 DB 20 DUP(?)

用串操作指令编写程序段,使其分别完成以下功能: (1)从左到右将DATA1中的字符串传送到DATA2中。

(2)传送完后,比较DATA1和DATA2中的内容是否相同。 (3)把DATA1中的第3和第4个字节装入AX。

(4)将AX的内容存入DATA2+5开始的字节单元中。 解: (1)

MOV AX,SEG DATA1 MOV DS,AX

MOV AX,SEG DATA2 MOV ES,AX LEA SI,DATA1 LEA DI,DATA2


微型计算机原理与接口技术冯博琴主编 - - - 课后答案.doc 将本文的Word文档下载到电脑
搜索更多关于: 微型计算机原理与接口技术冯博琴主编 - - - 课后答案 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

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