汇编 X数组数据: X=32,-43,76,95,-1,-78,127,-128,-125,88 按增序排序,数据复制到附加段

作者&投稿:潮竿 (若有异议请与网页底部的电邮联系)
汇编实现X=32,-43,76,95,-1;Y=-78,127,-128,-125,88两数组之和,结果送另一数组Z~

嘿嘿 俺来帮帮你吧
1 先要定义一个数据段 定义3个一维数组 长度分别为5字节
2 用循环结构 实现2个数组的加法运算 循环5次 完成数组中5个元素的相加
并将结果存入另一个数组保存
先自己动手做一做吧 有疑问可以找我
呵呵 满意就选满意回答啊

1. DATASEGMENT ;定义数据段 X DB 32,-43,76,95,-1 Y DB -78,127,-128,-125,88 S DB 5 DUP(?)DATA ENDSCODE SEGMENT ;定义代码段 ASSUME CS: CODE, DS: DATASTART: MOV AX,DATA ;数据段初始化 MOV DS,AX MOV CL,5 MOV BX,0NEXT MOV AL,X[BX] ADD AL,Y[BX] MOV S[BX],AL INC BX DEC CL JNZ NEXT MOV AH,4CH ;返回DOS INT 21HCODE ENDS ;代码段结束 END START ;程序结束

2.C:\masm>MASM TEST3;C:\masm>LINK TEST3;C:\masm>DEBUG TEST3.EXE
其中TEST3为源程序的名字

3
数据段的位置:00000H~0000EH,
数据段的大小:0000FH个字节
代码段的位置:00010H~0002EH,
代码段的大小:0001FH个字节

希望能帮到你哦~

你的意思是,写两个程序,一个完全用一个主模块,另一个程序用一个主模块,调用子程序的方式?汇编里的子程序不像C语言里的子程序规则那么死,参数怎么传完全由你自己约定。所以其实要求“子程序调用”,写出来的程序,和主模块没什么区别。

1. 完全在主模块里完成:
dseg segment
X db -43, 76, 95, -1, -78, 127, -128, -125, 88
COUNT EQU $ - X
dseg ends
eseg segment
Xsorted db COUNT dup(?)
eseg ends
cseg segment
assume cs:cseg, ds:dseg, es:eseg
begin:
mov ax, dseg
mov ds, ax
mov ax, eseg
mov es, ax
lea si, X
lea di, Xsorted + COUNT
dec di
;10个数字,只要9轮冒泡排序就能完成排序
mov cx, COUNT - 1
;下面用最普通的冒泡法排序
LoopOut:
lea si, X
push cx
LoopIn:
mov al, [si]
cmp al, [si + 1]
jle Skip
xchg al, [si + 1]
mov [si], al
Skip:
inc si
loop LoopIn
;每一次内层循环结束后,[si]是这一轮循环中的最大值
pop cx
mov al, [si]
mov es:[di], al
dec di
loop LoopOut
;10个数字,只要9轮冒泡排序就能排序完成,所以还有一个数没有拷贝
lea si, X
mov al, [si]
mov es:[di], al
mov ah, 4ch
int 21h
cseg ends
end begin

2. 用主模块加子程序调用
dseg segment
X db -43, 76, 95, -1, -78, 127, -128, -125, 88
COUNT EQU $ - X
dseg ends
eseg segment
Xsorted db COUNT dup(?)
eseg ends
cseg segment
assume cs:cseg, ds:dseg, es:eseg
begin:
mov ax, dseg
mov ds, ax
mov ax, eseg
mov es, ax
lea si, X
lea di, Xsorted + COUNT
dec di
;10个数字,只要9轮冒泡排序就能完成排序
mov cx, COUNT - 1
call SortAndCopy
mov ah, 4ch
int 21h
SortAndCopy proc
;下面用最普通的冒泡法排序
LoopOut:
lea si, X
push cx
LoopIn:
mov al, [si]
cmp al, [si + 1]
jle Skip
xchg al, [si + 1]
mov [si], al
Skip:
inc si
loop LoopIn
;每一次内层循环结束后,[si]是这一轮循环中的最大值
pop cx
mov al, [si]
mov es:[di], al
dec di
loop LoopOut
;10个数字,只要9轮冒泡排序就能排序完成,所以还有一个数没有拷贝
lea si, X
mov al, [si]
mov es:[di], al
ret
SortAndCopy endp
cseg ends
end begin

排完序后的结果是:
80 83 B2 D5 FF 4C 58 5F-7F


精河县18754793218: 现有X、Y二个数组:X=32、 - 43、76、95、 - 1,Y= - 78、127、 - 128、 - 125、88用汇编语言编程,计算两个数和现有X、Y二个数组: X=32、 - 43、76、95、 - ... -
子车苗复方:[答案] 1. DATASEGMENT ;定义数据段 X DB 32,-43,76,95,-1 Y DB -78,127,-128,-125,88 S DB 5 DUP(?)DATA ENDSCODE SEGMENT ;定义代码段 ASSUME CS: CODE, DS: DAT...

精河县18754793218: 现有X、Y二个数组:X=32、 - 43、76、95、 - 1,Y= - 78、127、 - 128、 - 125、88用汇编语言编程,计算两个数和 -
子车苗复方: 1. DATASEGMENT ;定义数据段 X DB 32,-43,76,95,-1 Y DB -78,127,-128,-125,88 S DB 5 DUP(?)DATA ENDSCODE SEGMENT ;定义代码段 ASSUME CS: CODE, DS: DATASTART: MOV AX,DATA ;数据段初始化 MOV DS,AX MOV CL,5 ...

精河县18754793218: 汇编 X数组数据: X=32, - 43,76,95, - 1, - 78,127, - 128, - 125,88 按增序排序,数据复制到附加段 -
子车苗复方: 你的意思是,写两个程序,一个完全用一个主模块,另一个程序用一个主模块,调用子程序的方式?汇编里的子程序不像C语言里的子程序规则那么死,参数怎么传完全由你自己约定.所以其实要求“子程序调用”,写出来的程序,和主模块没...

精河县18754793218: 现有X、Y二个数组:X=32、 - 43、76、95、 - 1Y= - 78,127、 - 128、 - 125、88用汇编语言编程,计算两个数组之和,结果送另一数组,即S(i)=X(i)+Y(i). 要程序代码 -
子车苗复方: DATA SEGMENT X DB 32,-43,76,95,-1 Y DB -78,127,-128,-125,88 S DB 5 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS: CODE, DS: DATA START: MOV AX,DATA MOV DS,AX MOV CL,5 MOV BX,0 NEXT MOV AL,X[BX] ADD AL,Y[BX] MOV S[BX],AL INC BX DEC CL JNZ NEXT MOV AH,4CH INT 21H CODE ENDS END START

精河县18754793218: X - 32=4 解方程 -
子车苗复方: X-32=4 X=4+32 X=36 有不明白的可以追问!谢谢!!祝学习进步

精河县18754793218: 32 - 4x=4(x+2)
子车苗复方: 32-4x=4x+8 8x=24 x=3

精河县18754793218: 汇编实现X=32, - 43,76,95, - 1;Y= - 78,127, - 128, - 125,88两数组之和,结果送另一数组Z -
子车苗复方: 嘿嘿 俺来帮帮你吧1 先要定义一个数据段 定义3个一维数组 长度分别为5字节2 用循环结构 实现2个数组的加法运算 循环5次 完成数组中5个元素的相加并将结果存入另一个数组保存 先自己动手做一做吧 有疑问可以找我 呵呵 满意就选满意回答啊

精河县18754793218: x÷2 - x÷4=32 -
子车苗复方: x÷2-x÷4=322x/4-x/4=322x-x=32*4 x=128

精河县18754793218: 16+(X+32) - 4=43怎样解X的方法? -
子车苗复方: 43+4-16-32=(-1)

精河县18754793218: 32 - 4x=(24÷x)x4
子车苗复方: 32-4X=(24÷X)*4=96/X 32X-4X²=964X²-32X+96=0X²-8X+24=0∵△=(-8)²-4*24=64-96=-32

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网