汇编语言已知数组A包含15个互不相等的整数,
;已知数组A中包含15个互不相等的无符号字节数据,数组B中有20个互不相等的无符号字节数据,
;编程将同时出现在A、B中的数存入数组C中。
data segment
DB 'HHHHHHHH';定义一串特殊字符,是为了DEBUG调试的方便(下同)
A db 15 DUP(0)
DB 'HHHHHHHH'
B DB 20 DUP(0)
DB 'HHHHHHHH'
CC DB 15 DUP(0)
DB 'HHHHHHHH'
data ends
code segment
main proc far
assume cs:code, ds:data
start:
mov ax,data
mov ds,ax
PUSH DS
POP ES
MOV CX,15;初始化数组A
MOV BX,OFFSET A
MOV AL,20
NEXT:
MOV [BX],AL
INC AL
INC BX
LOOP NEXT
MOV CX,20;初始化数组B
MOV BX,OFFSET B
MOV AL,30
NEXT1:
MOV [BX],AL
INC AL
INC BX
LOOP NEXT1
MOV BX,OFFSET CC
MOV DL,15
MOV SI,OFFSET A
SCAN_NEXT:
MOV AL,[SI]
MOV CX,20
MOV DI,OFFSET B
REPNE SCASB;查找数组A和数组B共同的数据
JNZ NO_EQU
MOV [BX],AL;保存在数组CC
INC BX
NO_EQU:
INC SI
DEC DL
JNZ SCAN_NEXT
MOV AX,4C00H
INT 21H
main endp
code ends
end start
以下是8086汇编输入数组子程序,数组元素为word类型,元素个数最多200。供参考: ;===============================================; 键盘输入数值数组子程序(数组名为array,元素个数存放在num中) INPUTNUM PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI PUSH BP PUSHF ; 输入的数据以一个空格分隔,以回车符结束输入 LEA DI,ARRAY ;将数组第一个元素的有效地址置入DI MOV WORD PTR[NUM],0 STIN: MOV AX,0 PUSH AX AGAIN1: MOV AH,1 INT 21H MOV BYTE PTR[CHAR],AL CMP AL,13 JE LINE0 CMP AL,' ' JE LINE0 SUB AL,30H MOV AH,0 MOV SI,AX POP AX MOV CL,10 MOV CH,0 MUL CX ADD AX,SI PUSH AX JMP AGAIN1 LINE0: POP AX MOV WORD PTR[DI],AX INC WORD PTR[NUM] CMP BYTE PTR[CHAR],13 JE STINEND INC DI INC DI JMP STIN STINEND: POPF POP BP POP DI POP SI POP DX POP CX POP BX POP AX RET ARRAY DW 200 DUP(0) NUM DW 0 CHAR DB ? INPUTNUM ENDP
;已知数组A包含10个互不相等的整数,数组B包含15个互不相等的整数,试编写一程序,将既在A中出现又在B中出现的偶数存放在数组C中,;请帮忙写一下汇编程序,谢谢
;--------------------------
;Microsoft (R) Macro Assembler Version 6.11 编译、调试通过
;--------------------------
data segment
Ar dw 0,1,2,3,4,5,6,7,8,9
Br dw 2,4,6,8,10,12,14,16,18,20,22,24,26,28,30
Cr dw 10 dup (?)
data ends
code segment
assume cs:code,ds:data
start:
mov ax, data
mov ds, ax
;-------------------------------
mov si, offset Ar
mov di, offset Cr
mov cx, 10
@C001:
mov ax, [si]
push cx
;-------------------------------
mov bx, offset Br
mov cx, 15
@C002:
mov dx, [bx]
cmp ax, dx
jnz @C003
test ax, 1
jnz @C003
mov [di], ax ; 找到一个在A、B中的偶数
inc di
inc di
@C003:
inc bx
inc bx
loop @C002
;-------------------------------
pop cx
inc si
inc si
loop @C001
;-------------------------------
mov ax,4c00h
int 21h
code ends
end start
已知数组A中包含15个互不相等的无符号字节数据,数组B中有20个互不相等...
LOOP NEXT MOV CX,20;初始化数组B MOV BX,OFFSET B MOV AL,30 NEXT1:MOV [BX],AL INC AL INC BX LOOP NEXT1 MOV BX,OFFSET CC MOV DL,15 MOV SI,OFFSET A SCAN_NEXT:MOV AL,[SI]MOV CX,20 MOV DI,OFFSET B REPNE SCASB;查找数组A和数组B共同的数据 JNZ NO_EQU MOV [BX],AL;...
汇编语言已知数组A包含15个互不相等的整数,
;已知数组A包含10个互不相等的整数,数组B包含15个互不相等的整数,试编写一程序,将既在A中出现又在B中出现的偶数存放在数组C中,;请帮忙写一下汇编程序,谢谢 ;--- ;Microsoft (R) Macro Assembler Version 6.11 编译、调试通过 ;--- data segment Ar dw 0,1,...
...在数组中存入15个互不重复的整数。要求在主函数中进
include<stdio.h>#include<stdlib.h>void f1(int *a, int nn);int main(void){ int ss[15] = {21}, i; \/\/将数组元素赋值为21,用于与产生的随机数比较 f1(ss, 15); printf("随机输入后的数组为:"); for (i = 0; i < 15; i++) { printf("%d ", ss[i]); } printf...
一组数组中存储有20个互不相同的整数。编写一段程序,依次实现如下功能...
for(i=0;i<20;i++)printf("%d ",a[i]);printf("\\n");b=binsearch(a,m,0,19);printf("%d\\n",b);if(b==-1)
已知一维数组中存放互不相同的10个整数,从键盘输入一个数,从组中删
include<stdio.h> int main(){ int a[10]={1,2,3,4,5,6,7,8,9,10};int i;scanf("%d",&i);for(int j=0;j<10;j++){ if(i==a[j]){ for(int k=j;k<9;k++){ a[k]=a[k+1];} } } a[9]='\\0';for(int i=0;i<10;i++){ printf("%d ",a[i]);} ret...
随机产生15个不重复的A~Z之间的大写字母,存放在字符数组中
Private Sub Command1_Click()Dim i%, j%, s$(1 To 26), t For i = 1 To 26 s(i) = Chr(i + 64)Next Randomize For i = 1 To 15 j = Int(Rnd * (26 - i + 1) + i)t = s(i): s(i) = s(j): s(j) = t Print s(i);Next End Sub ...
随机产生20个1~50之间的互不相同正整数放入数组A中,输出这组随机数.C...
include <stdlib.h>#include <time.h>void main(){int i,j,a[20];srand(time(NULL));for(i=0;i<20;i++){a[i]=rand()%50+1;for(j=0;j<i;j++)if(a[j]==a[i]) {i--;break;}}for(i=0;i<20;i++)printf("%d ",a[i]);}\/\/运行示例:
C语言中多个变量互不相等,如何用逻辑值表示?
a!=b&&a!=c&&a!=d&&a!=e &&b!=c&&b!=d&&b!=e &&c!=d&&c!=e &&d!=e 只能这样做了,要不赋值到一个数组并用一个值来存储元素个数,然后对数组元素对比,可以使用循环来判断,也可以进一步封装为函数
随机产生15个不重复的A-Z的大写字母,存放在字符数组中(VB解决此题...
for i=1 to 15 mychar(i)=Chr(Int(Rnd*26+65))for j=1 to i-1 if mychar(j)=mychar(i) then i=i-1 exit for end if next next 最后的结果存储在mychar(1)到mychar(15)中,数据类型忘记了,自己在定义数组的时候写上吧,还有好象可以用dim mychar(1 to 15)吧,我没有vb,你...
c语言十个数字互不相等的问题。。。
if((a!=b)&&(a!=c)&&(b!=c)) { array[n]=x; n++; } } printf("\\n所有不重复的两个三位数相加仍为一个不重复的三位数如下所示:\\n"); for(x=0;x<n;x++) { for(y=x+1;y<n;