鱼C论坛

 找回密码
 立即注册
查看: 3397|回复: 5

[技术交流] 设一个32位有符号数存放在DX:AX中,请写一个求其补码的程序片段。

[复制链接]
发表于 2016-12-15 12:39:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 兰陵月 于 2016-12-15 12:41 编辑
;程序名:TT322.ASM
;功  能:设一个32位有符号数存放在DX:AX中,请写一个求其补码的程序片段
ASSUME        CS:CSEG,DS:DSEG
;数据段
DSEG                SEGMENT        
        DIWEI          DW                321EH
        GAOWEI          DW                0CD20H
        MESSAGE1          DB                "THE NUMBER'S COMPLEMENT IS CD20321EH","$"
        MESSAGE2          DB                "THE NUMBER'S COMPLEMENT IS NEW","$"
DSEG                ENDS
;代码段
CSEG                SEGMENT
        START:                MOV                AX,DSEG
                                MOV                DS,AX                                
                                MOV                DX,GAOWEI
                                MOV                AX,DIWEI                                
                                TEST        DH,10000000B
                                JZ                OK1
                                JNZ                OK2                                
        OK2:                        XOR                DX,7FFFH
                                XOR                AX,0FFFFH
                                MOV                GAOWEI,DX
                                ADD                AX,1
                                MOV                DIWEI,AX
                                MOV                AX,GAOWEI
                                ADC                AX,0
                                MOV                GAOWEI,AX                                
                                MOV                DX,OFFSET MESSAGE2
                                MOV                AH,9
                                INT                21H                                
                                JMP                OK        
        OK1:                        MOV                DX,OFFSET MESSAGE1
                                MOV                AH,9
                                INT                21H
                                JMP                OK                                
        OK:                        MOV                AX,4C00H
                                INT                21H
CSEG                ENDS
                END                START
请问这个答案是否有错误,或者可以做更多优化。和大家交流~谢谢~

我已经经过调试,结果没有错误~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-12-15 13:01:12 | 显示全部楼层
那些个显示的9号中断,请忽略,我是为了测试用的~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-15 13:02:03 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-15 17:18:49 | 显示全部楼层
;程序名:TT322.ASM
;功  能:设一个32位有符号数存放在DX:AX中,请写一个求其补码的程序片段
ASSUME CS:CSEG, DS:DSEG
;数据段
DSEG SEGMENT        
        DIWEI DW 0001H
        GAOWEI DW 8000H
        MESSAGE1 DB "THE NUMBER'S COMPLEMENT IS CD20321EH","$"
        MESSAGE2 DB "THE NUMBER'S COMPLEMENT IS NEW","$"
DSEG ENDS
;代码段
CSEG SEGMENT
START:
        MOV AX, DSEG
        MOV DS, AX                                
        MOV DX, GAOWEI
        MOV AX, DIWEI 
        
        TEST DH, 10000000B
        JNZ NOK
        
        MOV DX, OFFSET MESSAGE1
        MOV AH, 9
        INT 21H
        
        MOV AX, 4C00H
        INT 21H
        
NOK:        
        not dx
        not ax
        or dx, 10000000B
        add ax, 1
        adc dx, 0
        MOV GAOWEI, DX
        MOV DIWEI, AX              
        
        MOV DX, OFFSET MESSAGE2
        MOV AH, 9
        INT 21H                                      
                              
        MOV AX, 4C00H
        INT 21H
CSEG ENDS
END START

评分

参与人数 1荣誉 +3 鱼币 +5 收起 理由
~风介~ + 3 + 5 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2016-12-16 11:12:06 | 显示全部楼层

你这个答案是书上的标准答案,我因为对NOT指令的不熟悉,所以没选择NOT指令,选用XOR来进行操作~

结果经过调试,都是正确的~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-16 12:47:29 | 显示全部楼层
兰陵月 发表于 2016-12-16 11:12
你这个答案是书上的标准答案,我因为对NOT指令的不熟悉,所以没选择NOT指令,选用XOR来进行操作~

结果 ...

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-19 16:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表