微机软件实验习题与答案(完整版).pdfVIP

  • 11
  • 0
  • 约2.73万字
  • 约 59页
  • 2020-07-19 发布于天津
  • 举报
微机原理软件实验 实验 1两个多位十进制数相加的实验 实验内容: 将两个多位十进制数相加,要求加数和被加数均以 ASCII 码形式各 自顺序存放以 DATA1和 DATA2为首的 5 个内存单元中(低位在前) ,结果送回 DATA1处。完整代码如下: DATAS SEGMENT ;此处输入数据段代码 STRING1 DB input the first number: ,$ STRING2 DB 13,10,input the second number: ,$ STRING3 DB 13,10,the output is: ,$ DATA1 DB 6 DUP(00H),$ DATA2 DB 6 DUP (00H),$ DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT 1 ASSUME CS:CODES,DS:DATAS,SS:STACKS START : MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 LEA SI,DATA1 LEA DI,DATA2 L0: LEA DX,STRING1;打印字符串 STRING1 MOV AH,09 INT 21H INPUT1: ;输入第一个数 MOV AH,01;输入字符至 AL 中 INT 21H CMP AL, / JE L1 MOV [SI],AL INC SI 2 JMP INPUT1 L1: LEA DX,STRING2 ;打印字符串 STRING2 MOV AH,09 INT 21H INPUT2: ;输入第二个数 MOV AH,01;输入字符至 AL INT 21H CMP AL, / JE L2 MOV [DI],AL INC DI JMP INPUT2 L2: MOV SI,0 CLC ;清空进位标志位 CF MOV CX,6 3 PLUSE: ;相加 ;SUB DATA1[SI],30H ;SUB DATA2[SI],30H ;这里不能使用这两条指令 ,因为如果 DATA1[5]=00H,00H-30H 需要借位相减,使 CF=1 MOV AL,DATA1[SI] ADC AL,DATA2[SI] AAA ;加法调整指令,可使两个 ASCII数直接相加 MOV DATA1[SI],AL ;和赋给 DATA1[SI] INC SI LOOP PLUSE L3: LEA DX,STRING3 ;打印字符串 STRING3 MOV AH,09 INT 21H MOV CX,6 MOV SI,6 SHOW: 4 DEC SI CMP DATA1[SI],00H JE SHOW SHOW2: MOV DL,DATA1[SI] ADD DL,30H MOV AH,02 INT 21H CMP SI,0 JE L4 DEC

文档评论(0)

1亿VIP精品文档

相关文档