汇编高手请进!急!!!

各位:帮我解决一下这几题(任一道也行)谢谢!
1、设数据区有两个字节串,串1的长度为5,串2的长度为10,若串2的最后五个字符和串1相同,刚置地址单元FLAG为“Y”,否则为“N”
2、设在变量单元A1、A2、A3、A4中存放有4个数,试编程实现将最大的数保留,其余3个数清零的功能。
3、若内存BUF开始的单元中存放6个无序数,请用冒泡法将他们按递增顺序排序
4、在内存BUFFER单元中定义有10个16位数,试寻找其中的最大值和最小值,并放至指定单元MAX和MIN中。
5、在BUFF开始的存储区中存放30个带符号数,试统计其正数、负数和零的个数、并将个数分别放到A1、A2和A3单元。
各位大虾帮帮忙啦,我追加分的哦~~~~

第一题:
datarea segment
string2 db '012345s789'
string1 db '56789'
flag db '0'
datarea ends
prognam segment
main proc far
assume cs:prognam,ds:datarea,es:datarea
start:
push ds
sub ax,ax
push ax
mov ax,datarea
mov ds,ax
mov es,ax
lea di,string1
lea si,string2
add si,5
cld
mov cx,5
repz cmpsb
jz match
mov al,'n'
mov flag,al
jmp exit
match:
mov al,'y'
mov flag,al
exit:
mov dl,al
mov ah,02h
int 21h

ret

main endp
prognam ends
end start
第二题:
datarea segment
A1 db 1
A2 db 2
A3 db 3
A4 db 4
datarea ends
prognam segment
main proc far
assume cs:prognam,ds:datarea,es:datarea
start:
push ds
sub ax,ax
push ax
mov ax,datarea
mov ds,ax
mov es,ax
lea bx,A1
add bx,1
mov al,A1
mov ah,0
mov cx,3
copar:
cmp al,[bx]
jae done
mov al,[bx]
done:
add bx,1
loop copar
lea bx,A1
mov cx,4
doit:
cmp al,[bx]
je itdone
push ax
mov ax,0
mov [bx],al
pop ax
itdone:
add bx,1
loop doit
mov ah,02h
lea bx,A1
mov cx,4
itdo:
mov dl,[bx]
add dl,30h
int 21h
mov dl,20h
int 21h
add bx,1
loop itdo

ret

main endp
prognam ends
end start
温馨提示:内容为网友见解,仅供参考
无其他回答

关于汇编语言的带符号数的有关问题,高手请进,急!
1、9098H是一个带符号数的补码,转换成二进制数为10010000 10011000B,它的最高位为1,即符号位为1,所以扩展后为11111111 11111111 10010000 10011000B,对应的十六进制数为FFFF9098H,同时,为了将以A到F开头的十六进制数和变量区分开,因为变量是以字母开头的,所以要将以A到F开头的十六进制数前加一个...

关于汇编PUSH指令的 高手请进
(SP) =FEH 这是进栈指令,栈的特点是先进后出(和队列相反),像上面,如果是两个的,但先进先出的话,出来的这个就是后进的那个了

汇编语言的高手请进,问几个简单题目
1 XOR AL,AL INC AL NEG AL INC AL MOV BL,7FH ADC AL,BL 答:上述程序运行后,AL=80H,CF=0 2 下面程序段是判断寄存器AH和AL中第3位是否相同,如相同,AH置0,否则AH置非0。试把空白处填上适当的指令(一个空白只填一条指令)。答: xor ah,al AND AH,08H jz ZERO...

关于低级的汇编试题!高手请进。重金悬赏
1.因为2的20次方为1MB 2.书上的。。。3.cpu是按地址访问内存单元的 4.XOR 相同时为0 5.DS data segment 书上的。。。

汇编高手请进。关于以下题目的代码(汇编语言的)。
;入口:字符串起始地址为STR_ADDR ; 字符串是以0结尾.D2X MACRO STR_ADDR LEA SI, STR_ADDR LP1:MOV AL, [SI]CMP AL, 0 JE FINI CMP AL, 'A'JB NEXT CMP AL, 'Z'JA NEXT ADD AL, 20H MOV [SI], AL NEXT:INC SI JMP LP1 FINI:ENDM ;--- ;宏定...

这道汇编怎么改,高手请进!
DATA ENDS STACK SEGMENT PARA STACK'STACK'DB 10 DUP(?)STACK ENDS CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE,DS:DATA START:PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV BX,BDAT call binidec mov ah,1 int 21h RET MAIN ENDP binidec proc near mov cx,10000d call ...

汇编语言高手进,急用,在线等答案!请确保答案的正确性!
;答案不一定能够完全确保正确,由于时间和能力有限 1.;这题,看了很久也看不出怎么填,;是不用CX用统计‘1’的个数啊,;还这里IMP L1,IMP指令我没看过,只看过JMP ;如果IMP是JMP的话,那会不会出现死循环的,2.;这里由题中JB知应该是无符号数相比,;所以不用考虑符号了 CMP DX,BX JA L2...

汇编语言中的操作数寻址方式问题.存储器和寄存器问题?高手请进
首先内存和寄存器都是可以存放数据的 而寄存器是就那么几个,不可能把所有数据都放在寄存器里 寄存器里面是有值的,如果直接丢给CPU运算,就是寄存器寻址。如果把寄存器里面的数当作地址编号,跟据编号在内存里找到另一个数,就是存储器寻址。CS,DS,ES,SS是CPU的寄存器 MOV AX,DS 都是寄存器寻址方式...

关于汇编偏移量的一些问题 高手请进
左移4位就相当于乘以16.4、这里面于是就对应了段寄存器和偏移寄存器的概念。5、“一次只能寻16个字节”的意思是,一个地址可以存放一个字节的数据,偏移地址是4位,所以只能寻址2的4次方的地址,最终导致一次只能跨越寻16个字节的地址。6、这种说法是基于内存的角度,而不是基于CPU的角度,特别容易导致...

汇编题目,请高手进!横线处填空
DATA SEGMENT SOURCE DW 1234h,2456h,6932h,0023h,1256h,5698h,1235h,2365h,5421h,6951h RESULT DB 10 DUP(0)DATA ENDS STAC SEGMENT STACK DB 128 DUP(?)STAC ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STAC START: MOV AX,DATA MOV DS,AX LEA SI,SOURCE LEA DI,RESULT MOV DX...

相似回答
大家正在搜