微机原理实验报告西安交通大学(2)

2019-05-24 09:27

c) 程序源代码 DATA SEGMENT

ORG 2000H;数据存放在2000H开始的单元

BCD DB 10H,28H,49H,69H,0A1H,0C3H,96H,29H,45H,02H DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX

MOV SI,2000H;地址指针指向单元首地址 MOV CX,10

MOV DL,80H;设置最小符号数 L1: LODSB

CMP AL,DL;比较带符号数 JNG L2 ;(DL)大则跳转L2

MOV DL,AL;DL指向内容小则交换 L2: LOOP L1

MOV DS:[2000H],DL;最大数存放在2000H单元 MOV AH,4CH INT 21H CODE ENDS END START

运行:BCD DB 10H,28H,49H,69H,0A1H,0C3H,96H,29H,45H,02H 结果为69H

第三题(P195,第6题)

试编制一程序,用乘法指令实现32位二进制数与16位二进制数相乘。 a) 实验原理

首先把被乘数第八位和高八位分别与乘数相乘,高八位乘得结果左移16位与第八位乘得结果相加即为结果。

b) 程序框图

c) 程序源代码 DATA SEGMENT

DATAX DW 1000H,1000H DATAY DW 2000H DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA

MOV DS,AX

MOV BX,1000H ;将把结果存到1000H开始的单元中 MOV SI,OFFSET DATAX MOV DI,DATAY

MOV AX,[SI]

MUL DI ;把低16位相乘,结果存到AX,DX中

MOV [BX],AX ;把结果中低16位存到BX对应的存储单元 MOV [BX+2],DX ;把结果中高16位存到BX+2对应的存储单元

MOV AX,[SI+2] ;计算被乘数高16位相乘的结果 MUL DI

ADD [BX+2],AX ;把两次相乘结果对应(把第二次的结果 ;向左移16位)相加,最后结果存在了[BX] 到[BX+5] ADD [BX+4],DX MOV AH,4CH INT 21H CODE ENDS END START

运行:结果在DS:1000中

第四题(P196,第12题)

设有两个等字长,字节型字符串,试编写一汇编程序,比较它们是否完全相等,若相等则将字符Y送入AL中,否则将字符N送入字符中。

a) 程序框图

b) 程序源代码 DATA SEGMENT

STRX DB 'CZX0','$' STRY DB 'CZX1','$' DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX CLD

LEA DI,STRY;取字符串1首地址 LEA SI,STRX;取字符串2首地址 CALL L1

MOV DL,AL ;显示结果 MOV AH,02H INT 21H

MOV AH,4CH INT 21H L1 PROC

MOV CX,10

REPZ CMPSB STRX,STRY ;比较两个字符串 JNZ RA ;不相等则跳转到RA MOV AL,'Y' ;相等则将Y送AL


微机原理实验报告西安交通大学(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:艾美生物科技电子商务策划书

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

马上注册会员

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