正文

U<- V+(S-6) 汇编语言2005-12-22 11:44:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/smile/8679.html

分享到:

编程实现: 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
   这些类似的数去测试结果

阅读(3957) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册