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
STACK1 SEGMENT STACK
DW 20H DUP(?)
STACK1 ENDS
CODE SEGMENT
ASSUME DS:DATA,SS:STACK1,CS:CODE
START: XOR AX,AX
MOV AX,DATA
MOV DS,AX
MOV AX,0
MOV DX,0
MOV SI,1
MOV Al,TABLE1
MOV Dl,TABLE1[SI]
mov cl,len ;置计数字
lp: inc si
CMP Al,Dl
JG LP1
MOV STORE,dL ;存大的数据
LP1: MOV STORE,aL ;存大的数据
MOV Dl,TABLE1[SI] ;取下一个数据
MOV AL,STORE ; 和小的数比较
loop lp
MOV DX,OFFSET STORE ;显示最大的数据
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START