请教高手两个汇编问题。急
来源:百度知道 编辑:UC知道 时间:2024/05/17 03:29:11
1.已知在以ARRAY为首地址的数据区中存放10个带符号字数据:
ARRAY DW,1,2,-1,3,4,-2,-3,4,5,-6
编程将ARRAY分成两个数组:正数数组P_ARY和负数数组N_ARY,并分别显示正数项个数和负数项个数。
要求:源程序格式完整。
2.程序接收用户键入一个关键字和一个句子。如果句子中不包含关键字则显示No match;如果包含则显示该字在句子中的位置,用十六进制数显示。
谢谢啦。
ARRAY DW,1,2,-1,3,4,-2,-3,4,5,-6
编程将ARRAY分成两个数组:正数数组P_ARY和负数数组N_ARY,并分别显示正数项个数和负数项个数。
要求:源程序格式完整。
2.程序接收用户键入一个关键字和一个句子。如果句子中不包含关键字则显示No match;如果包含则显示该字在句子中的位置,用十六进制数显示。
谢谢啦。
把数挨个放入数组,指针移动,数字挨个与0比较,比0大先放入一个数组里,再放入一个寄存器(累加)中,比0小先放入一个数组里,再放入一个寄存器(累加)中..
第二个问题也是把数字拿出来挨个比较,不过关键字和句子要先放入数据段里.
这两个程序都需要有个数据段
做下第一个吧
assume cs:code,ds:data,ss:stack
stack segment
db 32 dup (0)
stack ends
data segment
ARRAW dw 1,2,-1,3,4,-2,-3,4,5,-6
P_ARY dw 10 dup (0)
N_ARY dw 10 dup (0)
data ends
code segment
start:
mov ax,data
mov ds,ax
mov cx,0ah
mov si,0
@@: cmp ARRAW[si],0
jg p
mov ax,ARRAW[si]
mov P_ARY[si],ax
inc bx
jmp next
p: mov ax,ARRAW[si]
mov N_ARY[si],ax
inc dx
next: add si,2
loop @b
mov ax,4c00h
int 21h
code ends
end start
第一个数组中的元素个数保存在了bx中
第二个数组中的元素个数保存在了dx中
这道题我做过
data segment
array dw 1,2,-1,3,4,-2,-3,4,5,-6
P_ARY dw 10 dup(