汇编语言的几个题目,求高手帮忙做一做,急急的..

来源:百度知道 编辑:UC知道 时间:2024/04/27 23:09:17
写出以下题的答案:
一、按要求写出程序段(只写出有关语句即可)
1、把数据段中偏移地址为0005H和0006H单元中的内容互换。
2、令AL的低四位存入CL的低四位中去,而CL的高四位不变。
3、任意给定X值(-128<=X<=127),符号函数Y=1(当X>0);Y=0(当X=0);Y=-1(当X<0)。假设X存在X单元中,Y存在Y单元中,求符号函数Y的值。

二、编程:按如下要求写出能上机的程序。
1、把数据段中自定义的无符号字节数组中的最大值找出来,并存放到STORE单元中去。

我昨天回答了,今天看没有了!郁闷啊 !
重新来:

1.操作数不能同为内存寻址,所以用寄存器传
mov al,data1+4;取第一个数据(dw用ax)
xchg al,data+5;交换数据

2.
and cl,f0h; 保留高四位
and al,0fh; 保留低四位
add cl,al
3.
data segment
y1 db 1
y2 db 0
y3 db -
buffer db 06h
db 0
db 06h dup(?)
data ends
stack1 segment stack
db 20h dup(?)
stack1 ends
code segment
assume ss:stack1,cs:code,ds:data
start: mov ax,data
mov ds,ax
mov ah,0ah
int 21h
mov al,buffer+2
cmp al,2dh ;为负
jz disp1
cmp al,0 ;为0
jz disp2
mov dx,offset y1 ;为正显示1
mov ah,09h
int 21h
disp1: mov dx,offset y3 ;显示负号
mov ah,09h
int 21h
lk: mov dx,offset y1 ;显示1
mov ah,09h
int 21h
disp2: jmp lk
mov ah,4ch
int 21h
code ends
end start
二、
data segment
table1 db 13,2,15,4,12,11,10,2,6,5,12,,1,0,3
len equ $-table
store db ?