微机实验一到八答案(2)

2020-02-21 22:23

MOV BX,2080H MOV CX,8 TEMP: MOV DX,[BX] ;此循环用来保存被覆盖的8个内存单元 MOV ES:[DI],DX ;的数据,放在ES段中 INC DI INC BX

DEC CX JNZ TEMP

MOV DI,2080H ;给后40个内存单元循环赋值, MOV BX,50H ;从偏移量2080H开始。 MOV CX,28H

LOOP2: MOV [DI],BX INC BX INC DI

DEC CX JNZ LOOP2 MOV SI,00H ;交换40个字节内容 MOV DI,00H MOV CX,28H R: MOV BL,[SI+2060H] MOV BH,[DI+2080H] MOV [DI+2080H],BL MOV [SI+2060H],BH INC SI INC DI

DEC CX JNZ R

CODE ENDS END

实验内容3:如果X>50,转移到TOO-HIGH,在TOO-HIGH中将X显示出来; 如果带 符号减法X-Y引起溢出,则转移到OVERFLOW,在OVERFLOW中将 X、Y和X-Y的结果显示出来; 否则,计算|X-Y| ,并将结果存放在RESULT 中。(其中,X,Y,RESULT均为字变量) 代码:

DATA SEGMENT DAI DB 'X =:$' DAI2 DB 'Y =:$' DAI3 DB '|X-Y| =:$' X DW -32768 Y DW 32 RESULT DW 0 DATA ENDS

STACKS SEGMENT DW 128 DUP(?) STACKS ENDS CODE SEGMENT

ASSUME DS:DATA,CS:CODE START:

MOV AX,DATA MOV DS,AX

MOV AX,X

CMP AX , 50 ;比较

JG TOO-HIGH ;如果(X)大于50,则转向 TOO-HIGH SUB AX,Y

JO OVERFLOW ;溢出则转移 JNS NONNEG ;无符号,则转

NEG AX ;X—Y为正时,补码为其本身,为负时取补码刚好是它的相反数。 NONNEG: MOV RESULT , AX ;无溢出,取绝对值,并将结果存入RESULT HLT ;暂停

TOO-HIGH:

MOV DX,OFFSET DAI MOV AH,09H INT 21H MOV AX,X;取内存数到AX

CALL SHOW1 ;显示十进制形式 MOV AH,7 ;暂停 INT 21H

MOV AX,4C00H ;退出程序 INT 21H

SHOW1:

XOR CX ,CX MOV BX ,10 NX1:

XOR DX,DX DIV BX

OR DX,0e30H INC CX PUSH DX CMP AX,0 JNZ NX1 NX2: POP AX INT 10H

LOOP NX2 RET

OVERFLOW: MOV DX,OFFSET DAI ;显示X MOV AH,09H INT 21H MOV AX,X;取内存数到AX

CALL SHOW2 ;显示十进制形式

MOV DX,OFFSET DAI2

MOV AH,7 ;暂停 INT 21H

MOV AX,4C00H ;退出程序 INT 21H SHOW2:

XOR CX ,CX MOV BX ,10 NX3:

XOR DX,DX DIV BX

OR DX,0e30H INC CX PUSH DX CMP AX,0 JNZ NX3 NX4: POP AX INT 10H LOOP NX4 MOV DL,0AH MOV AH,02H INT 21H ;显示Y MOV AH,09H INT 21H MOV AX,Y;取内存数到AX

CALL SHOW3 ;显示十进制形式 MOV AH,7 ;暂停 INT 21H

MOV AX,4C00H ;退出程序 INT 21H SHOW3:

XOR CX ,CX MOV BX ,10 NX5:

XOR DX,DX DIV BX

OR DX,0e30H INC CX PUSH DX CMP AX,0 JNZ NX5 NX6: POP AX INT 10H LOOP NX6 MOV DL,0AH MOV AH,02H INT 21H MOV DX,OFFSET DAI3 MOV AH,09H INT 21H MOV BX ,X SUB BX,Y MOV X,BX

MOV AX,X;取内存数到AX

CALL SHOW4 ;显示十进制形式 MOV AH,7 ;暂停 INT 21H

MOV AX,4C00H ;退出程序 INT 21H SHOW4:

XOR CX ,CX MOV BX ,10 NX7:

XOR DX,DX DIV BX

OR DX,0e30H INC CX PUSH DX CMP AX,0 JNZ NX7 NX8: POP AX INT 10H LOOP NX8

;显示|X-Y|

HLT CODE ENDS END START

【实验总结】

内容一和内容二相对来说比较好理解,通过看一些实例,我们最终知道了应该怎么做,而内容三比较复杂,我们用了许多时间,不过最后经过组内的学习和讨论,终于做出来了。我们都从中收获到了许多新知识。

实验四内存块移动实验

组长: 谭浩敏 组员:刘赏源,陈润强

一、 实验目的

1、熟悉实验系统的编程和使用。

2、了解内存的移动方法。 3、加深对存储器读写的认识。

二、 实验内容

实验内容1:用汇编语言编写程序实现以下运算,并将最终结果显示在屏幕上。假设变量X、Y、Z、V均为有符号的16位二进制。

(V-(X*Y+Z-540))/X

代码:

DATA SEGMENT

DAI1 DB 0AH,0DH,'INPUT X,Y,Z,V ORDERLY, EG:+XXXX:$' DAI2 DB 0AH,0DH,'TYPE IN THE NUMBER:$' DAI3 DB 0AH,0DH,'NUMBER X,Y,Z,V ARE : $' DAI4 DB 0AH,0DH,'RESULT W IS:$' DAI5 DB 0AH,0DH,'EXTRA IS:$' BUF DB 10

DB 0 NUM DB 200 DUP(0)


微机实验一到八答案(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《概率论与数理统计(本科)》复习题

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

马上注册会员

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