欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

河北专接本微机原理编程题

程序员文章站 2022-03-10 08:22:54
...

设在相邻的两个字单元WORD1和WORD2中存有一带符号的双字长数据 abcd jkmbh

(a,b,c........分别表示任意的一位十六进制数)。搞一汇编语言程序,求除双字长数据的绝对值,存入字单元ABS1和ABS2

DATA1 SEGMENT 
WORD1 DW efgh
WORD2 DW abcd
ABS1  DW ?
ABS2  DW ?
DATA1 ENDS
 
CODE SEGMENT
	 ASSUME CS:CODE,DS:DATA1
	  
START:
      MOV AX,DATA1  
      MOV DS,AX
      
      MOV AX,WORD1;因为是要求绝对值,所以要判断是不是负数,用或指令
                  ;判断符号位是1还是0
      MOV DX,WORD2
      OR  DX,DX
      JNS  NEXT     ;SF不等于1跳,即正数
      NOT AX         ;给负数求绝对值就是按位取反,末尾加一
      NOT DX
      ADD AX 1
      ADC DX,0      ;ADC带进位的加法,你不知道,AX向DX有没有进位
                     ;所以DX+0+1  这是有进位 CF=1时
                     ; DX+0+0  这是没有进位
NEXT: 
      MOV ABS1,DX
      MOV ABS2,AX      
      
      MOV AH,4CH
      INT 21H
      CODE ENDS
           END START

中。

相关标签: C语言