汇编小实验1

进入DEBUG后,首先用命令R查看当前DS内容,记录此值,假设为X。在DEBUG下汇编、调试完成下列功能的程序。

1):将内容F000:2000H起30H个字数据传送到内存X:1000H开始处

这里是把一个单元的数据复制到另外的单元,而且是连续的数据,所以肯定要用到循环,由于这两个DS内容的不同,所以再进行复制的时候,要对ds进行复制操作,具体的看如下的代码。

 1       MOV CX,30
 2       MOV SI,2000
 3       MOV DI,1000
 4 AGAIN:MOV BX,F000
 5       MOV DS,BX
 6       MOV AX,[SI]
 7       MOV BX,073F
 8       MOV DS,BX
 9       MOV [DI],AX
10       INC DI
11       INC SI
12       LOOP AGAIN
13       INT 3
View Code

2)测试内存X300H开始的10H个字节数据,计算其中正数、负数、0的个数,并将结果分别存放在X400H开始的三个内存单元中

这里是统计连续单元里面的整数,负数,0的个数。可以直接用cmp,0 进行比较,如果 ==0 则跳转 JE,如果大于0 则跳转 JG,如果小于0,则跳转 JL。同时也需要loop

我用si,di,dx来分别统计0,正数,负数的个数。具体看代码。

 1             MOV CX,10
 2             MOV BX,300
 3             MOV AX,[BX]
 4         X :INC BX
 5             CMP AX,0
 6             JE  X1
 7             JG X2
 8             JL  X3
 9        X1:INC SI
10             JMP  X4
11        X2:INC DI
12             JMP X4
13        X3:INC DX
14             JMP X4
15        X4:LOOP  X
16             MOV BX,400
17             MOV [BX],SI
18             INC BX
19             MOV [BX],DI
20             INC  BX
21             MOV [BX],DX
22             INT 3
23      
View Code

posted on 2014-11-04 14:28  天依蓝  阅读(586)  评论(0编辑  收藏  举报

导航