汇编语言的几个题目,高手帮忙做做,谢谢了

来源:百度知道 编辑:UC知道 时间:2024/05/11 01:36:52
写出以下题的答案:
一、按要求写出程序段(只写出有关语句即可)
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 si,05h
mov ax,data[si] ;视情况而定,data定义为dw为ax,db的话就为al
inc si
xchg ax,data[si] ;交换数据
2.
and cl,f0h ;保留高四位
and al,f0h ;保留低四位
add cl,al ;相加得到结果
3.
data segment
y1 equ 1
y2 equ 0
y3 equ '-'
buffer db 20h dup(?)
db 0
db 20h dup(0)
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov ah,0ah ;字符串输入
int 21h
mov si,02
mov al,buffer[si];将第一个字符送al测试为正,负(负号为2dh),0
cmp al,30h
jg lp1
jl lp2
mov dl,y2 ;显示0
mov ah,02h
int 21h
lp1: mov dl,y1 ;显示1
mov ah,02h
int 21h
lp2: mov dl,y3 ;显示-1
mov ah,02h
int 21h
mov dl,y1
mov ah,02h
int 21h
code ends
end start

二:
DATA SEGMENT
TABLE1 DB 54,42,23,38,65,54,97,87
len equ $-table1
STORE DB ?
DATA ENDS
S