+ -
当前位置:首页 → 问答吧 → 请教下~麻烦解一下下面的题目

请教下~麻烦解一下下面的题目

时间:2010-12-08

来源:互联网

1、设有100个无符号数的数组,起始地址为1000H,编写程序,把他们由小到大排列到以2000H为起始地址的区域中去。
2、有两个无符号数x,y分别存放在内部30H和31H单元中,编程实现x乘10加y,结果存入32H,33H中
3、编写程序,将内部30H~32H中的两个3字节BCD码十进制数相加,结果以单字节BCD码形成存放到外部1000H~1005H单元
4、从内部RAM20H单元开始,有20个数据,编写程序,把其中的正数,负数,零分别送到以41H,61H,和81H开始的单元,并分别记下正数,负数和零的个数,送入10H,11H,12H。

3Q~

作者: q287841348   发布时间: 2010-12-08

Assembly code
;1. 
MOV ESI,1000H
MOV ECX,100H
REPNE MOVS BYTE PTR DS[2000H],BYTE PTR DS:[1000H]
;2.
MOV EAX,DWORD PTR DS:[30H]
MOV ECX,0AH
MUL ECX
ADD EAX,DWORD PTR DS:[31H]
;3.没看懂.
;4.
XOR EBX,EBX
MOV ECX,20H
MOV EDX,20H
GETSRC:
MOV EAX,[EDX]
TEST EAX,EAX
JNE N
MOV [EBX+81H],EAX
INC [12H]
JMP NEXT
N:
AND EAX,0x80000000
JNE G
MOV [EBX+61H],EAX
INC [11H]
JMP NEXT
G:
MOV [41H],EAX
INC [10H]
CMP EDX,40
JE EXIT
NEXT:
INC EDX
INC EBX
JMP GETSRC
EXIT:
MOV AH,4CH
INT 21H

作者: wx7864566   发布时间: 2010-12-08

第二个操作数互换一下,打错了

作者: wx7864566   发布时间: 2010-12-08