注册 登录
编程论坛 汇编论坛

小白求助,简单的两道编程题

丶随风飘扬 发布于 2020-06-18 15:53, 4868 次点击
1.以ARRAY为首地址的内存单元中,存放10个8位的带符号数(-11,22,33,-22,55,45,-33,-77,66,-47),统计数组中大于等于0的数的个数,并将结果存入RESULT字节单元中。

2.统计数字69的二进制数据中1的个数,并将结果存入RESULT字节单元中。
5 回复
#2
Valenciax2020-06-18 17:56
若是x86汇编,可以这样写.

只有本站会员才能查看附件,请 登录
#3
丶随风飘扬2020-06-18 18:57
回复 2楼 Valenciax
大佬,能不能把代码发出来,别给张图呀。

[此贴子已经被作者于2020-6-18 19:14编辑过]

#4
丶随风飘扬2020-06-18 19:03
回复 3楼 丶随风飘扬
大佬,这是我写的,你帮我看下对不对。
1.
程序代码:

DATA SEGMENT
ARRAY DW -11,22,33,-22,55,45,-33,-77,66,-47
RESULT DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
LEA SI,ARRAY
MOV BX,0
MOV CX,10
L1: TEST WORD PTR[SI],8000H
JNZ NEXT; 为负数,跳转next
INC BX
INC SI
LOOP L1
JMP EXIT
NEXT:INC SI
LOOP L1
EXIT:MOV AH,4CH
MOV RESULT BX
INT 21H
CODE ENDS
END START

2.
程序代码:

DATA SEGMENT
RESULT DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AL,69
XOR AH,AH
MOV CX,8
L1:
SAL AL,1
ADC AH,0
LOOP L1
EXIT:
MOV RESULT,AH
MOV AH,4CH
MOV RESULT BX
INT 21H
CODE ENDS
END START
#5
Valenciax2020-06-18 19:32
也差不多了,但仍有錯,修正一下
程序代码:

DATA SEGMENT
ARRAY DW -11,22,33,-22,55,45,-33,-77,66,-47
RESULT DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
LEA SI,ARRAY
MOV BX,0
MOV CX,10
L1: TEST WORD PTR[SI],8000H
JNZ NEXT; 为负数,跳转next
INC BX
NEXT:ADD SI,2
LOOP L1
EXIT:MOV AH,4CH
MOV RESULT,BX
INT 21H
CODE ENDS
END START



程序代码:

DATA SEGMENT
RESULT DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AL,69
MOV BX,0
MOV CX,8
L1:
SAL AL,1
ADC BX,0
LOOP L1
EXIT:
MOV AH,4CH
MOV RESULT,BX
INT 21H
CODE ENDS
END START
#6
丶随风飘扬2020-06-18 19:50
回复 5楼 Valenciax
多谢!
1