编程实现: U<-- V+(S-6)
设U,V,S均为二位十进制压缩BCD码(如:49H)
方法一:
data segment
v db 49h
s db 15h
u db ?
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov al,s
sub al,06h
das
jbe l1
add al,v
daa
jmp l2
l1:
neg al ;如果是负数,则求出其对应的正数
mov ah,al ;将s-06h的结果绝对值存在ah中
mov al,v
sub al,ah ;用v-|s-06h|
das
l2:
mov u,al
mov ah,4ch
int 21h
code ends
end start
方法二:(不用考虑正负数)
data segement
v db 49h
s db 15h
u db ?
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov al,s
sub al,06h ; s-06h,al中存入的是0FH
das ; al的内容变成了09H
add al,u ; al的内容为52h
daa ; (al)=58H
mov ah,4ch
int 21h
code ends
end start
---------------------------
你可以用v=15h,s=03h
v=05h,s=02h
v=49h,s=06h
这些类似的数去测试结果
评论