2、 求用汇编语言编程:给DX送一个初值,然后判断:若DX的高4位全为0,则使AX=0;否则使AX=-1

[复制链接]
查看11 | 回复4 | 2010-11-17 16:07:11 | 显示全部楼层 |阅读模式
;嗯 楼上说得对 看错了 应该变一下 CMP DH,0这个语句,不过我觉得用TEST语句更好理解,这个是两个数相与的指令,只影响标志位,更好理解,如下ASSUME CS:CODECODE SEGMENTSTART: MOV DX,1234 TEST AH,11110000B JZ L1 MOV AX,0FFFFH JMP L2L1: MOV AX,0L2: MOV AH,4CH INT 21HCODE ENDSEND START
回复

使用道具 举报

千问 | 2010-11-17 16:07:11 | 显示全部楼层
不是DH全为0,而是DH高4位为0,所以判断条件是无符号数比较,是否小于等于0FH,另对程序优化,如下:ASSUME CS:CODECODE SEGMENTSTART: MOV DX,1234 MOV AX,0FFFFH CMP DH,0fh JA L2 INC AXL2: MOV AH,4CH INT 21H
回复

使用道具 举报

千问 | 2010-11-17 16:07:11 | 显示全部楼层
assume cs:csegcseg segmentstart:mov ax, 0FFHtest ax, 0F000H ;判断高4位jz zeromov ax,-1jmp exitzero:mov ax,0exit:mov ah,4chint 21hcseg endsend start
回复

使用道具 举报

千问 | 2010-11-17 16:07:11 | 显示全部楼层
去问汇编老师吧...一定给你标准答案...O(∩_∩)O~...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行