汇编语言看看这段有什么问题 三个有符号数比较大小将最大的放在MAX变量里

作者&投稿:相君 (若有异议请与网页底部的电邮联系)
汇编语言 三个符号数最大者送入MAX~~

desg SEGMENT
buffer DW 0fe17H,03a23H,0ff20H
MAX DW ?
string db 'MAX=', '$'
desg ENDS
code SEGMENT
ASSUME CS:code,DS:desg
start:

MOV AX,desg
MOV DS,AX
MOV AX,buffer
CMP AX,buffer+2
JGE NExt1
XCHG AX,buffer+2

NExt1: CMP AX,buffer+4
JGE NExt2
XCHG AX,buffer+4
;ax stores the max number here

NExt2: MOV BX,buffer+2
CMP BX,buffer+4
JGE NExt3
XCHG BX,buffer+4
;bx stores the second max number
NExt3: MOV CX,buffer+4

MOV buffer,AX
MOV buffer+2,BX
MOV buffer+4,CX

Mov MAX,AX
mov bx,ax
mov dx, offset string
mov ah, 09H
int 21H

mov dl,bh
mov ah,02h
int 21h

mov dl,bl
mov ah,02h
int 21h

call newline
MOV AH,4CH
INT 21H

newline proc
push ax
push dx
mov dl, 0Dh
mov ah, 02h
int 21h
mov dl, 0aH
mov ah,02h
int 21h
pop dx
pop ax
ret
newline endp
code ENDS
END start


WIN 7 下无法测试,你自己看看吧,应该不会有什么问题

DATASEGMENT
N1DB -1,-4,-50
MAXDB 0
DATA ENDS
STACKSEGMENT STACK
DB 200 DUP(0)
STACKENDS
CODESEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:MOVAX,DATA
MOVDS,AX
MOV BX,OFFSET N1
MOV AL,[BX]
CMP AL,[BX+1]
JG S1
MOV AL,[BX+1]
S1:CMP AL,[BX+2]
JG S2
MOV AL,[BX+2]
S2:MOVMAX,AL

test al,80h
jz zzz
neg al
mov dl,'-'
push ax
mov ah,2
int 21h
pop ax
zzz:
mov ah,0
mov dl,100
div dl
push ax
mov ah,2
mov dl,al
add dl,30h
int 21h
pop ax
mov al,ah
mov ah,0
mov dl,10
div dl
add ax,3030h
push ax
mov ah,2
mov dl,al
int 21h
pop ax
mov dl,ah
mov ah,2
int 21h

MOVAH,4CH
INT21H

CODEENDS
ENDSTART

楼上正解!
以下为DEBUG下调试结果:(最大值是789AH,9000H是负数)

E:\masm>debug t1102.exe-p
AX=17DC BX=0000 CX=00A7 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=17CC ES=17CC SS=17DC CS=17E4 IP=0003 NV UP EI PL NZ NA PO NC
17E4:0003 8ED8 MOV DS,AX
-p

AX=17DC BX=0000 CX=00A7 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=17DC ES=17CC SS=17DC CS=17E4 IP=0005 NV UP EI PL NZ NA PO NC
17E4:0005 A10000 MOV AX,[0000] DS:0000=2002
-d0 l10
17DC:0000 02 20 00 90 9A 78 00 00-00 00 00 00 00 00 00 00 . ...x..........
-g23

AX=2002 BX=9000 CX=789A DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=17DC ES=17CC SS=17DC CS=17E4 IP=0023 NV UP EI NG NZ AC PO CY
17E4:0023 B44C MOV AH,4C
-d0 l10
17DC:0000 02 20 00 90 9A 78 9A 78-00 00 00 00 00 00 00 00 . ...x.x........
-

START:
MOV AX,DATAS
MOV DS,AX
MOV AX,BUF
MOV BX,BUF+2
MOV CX,BUF+4
CMP AX,BX
JGE NEXT1
XCHG AX,BX
JGE NEXT1 ;(去掉此句)
NEXT1:
CMP AX,CX
JGE NEXT2
MOV MAX,CX
JMP NEXT3 ;(添加此句)
NEXT2:
MOV MAX,AX
NEXT3: ;(添加此句)


C语言的大虾们,帮我看看这段程序到底出现了什么错误?为什么总是编译时ex...
include<stdio.h> int main(){ int x,sign;printf("请输入一个整数:");scanf("%d",&x);if(x<0)sign=1 printf("x为%d时,符号为%d",x,sign);else if(x>0){ \/\/这里有{ sign=1; \/\/这里必须要;printf("x为%d时,符号为%d",x,sign);} \/\/这里有} else sign=0;printf...

编程语言有哪几种,详细介绍一下这些语言
计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。 电脑每做的一次动作,一个步骤,都是按照以经用计算机语言编好的程序来执行的,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。 计算机所能识别...

E语言。谁帮我看看这段。每次都提示:不能将“文本型”数据转换到“双...
编辑框7.内容 = 到文本 (到数值 (编辑框1.内容 ÷ 21.75) × 到数值 (编辑框4.内容 × 2))编辑框10.内容 = 到文本 (到数值 (编辑框1.内容 ÷ 21.75) × 到数值 (编辑框5.内容 × 3))这几行你都是直接编辑框1.内容除以啊。你后面都对了的改成到数值(编辑框1.内容)\/21.75...

麻烦会C语言编程的大侠来看看我这个程序哪里错了。
你的段选跟位选的地方有问题,把它改为wela=1;P0=0xfe;wela=0;P0=0xff;dula=1;P0=table[X];dula=0;delay(5);下面的都是这样改,你写程序的时候很粗心啊,你再好好看看那两位的开段选是1还是0

编程语言有几种,分别都是编什么程序的?
电脑每做的一次动作,一个步骤,都是按照以经用计算机语言编好的程序来执行的,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。 计算机所能识别的语言只有机器语言,即由0和1构成的代码。但通常人们编程时,不采用机器语言,因为它...

编程语言有哪些?
对了,说说性能,老三,你这不怎么行。 老大Java补刀:连数据都没有,老三你做什么人工智能,看看得我的apache社区的大数据框架ApacheHadoop,ApacheHive,ApacheH...老三,他连编译器都没有,一个解释器基于我的编译器,竟然敢叫嚣超越我,用我编译器,底层封装我的代码,没有我,哪里来你,脚本就是脚本,动态语言就是动态...

以下是一段VHDL语言,想请教一下这段话是在做什么??
程序编写得还是比较清楚的 libraryieee;-库引用 useieee.std_logic_1164.ALL;-程序包引用 useieee.std_logic_unsigned.all;-程序包引用 entityfengpinis-实体定义,也就是一个电路模块的对外特性 port(clki:instd_logic;-输入时钟 clko:outstd_logic);-分频输出 endfengpin;architectureaoffengpinis...

大家看看我们编的汇编语言为什么不对啊?帮忙修改啊
即加上DAA指令,在执行后,计算机会将所得结果80H自动加上06H,使结果为86H,与十进制数的86相吻合。当然DAA指令并不是总对结果加上06H,这要看加法后的结果如何,而相应采取不同的措施,但是,我们不用费神,这项工作是由计算机帮我们完成的,我们只要会用DAA指令就可以了。

C语言的一段程序,麻烦看看是怎么回事?
你这一段C语言的程序中,输入的字符串a没有结束符,所以打印时会出现若干个"烫"。你只要在,scanf语句的下面增加一个语句:a[i]=0;就可以啦!

幼儿园大班语言领域教学方案【5篇】
幼儿园大班语言教学方案2 活动目标: 1、寻找长大的变化,理解长大的内涵。 2、体验长大的快乐和自豪,萌发不断成长的愿望。 活动准备: 幼儿之间互相帮助的照片、幼儿学写字的照片、幼儿自己叠被子的照片、课件,小时侯的鞋子。 活动过程: 一、视频导入 1、今天张老师带来一段录象,我们一起来看看这段录象里有什么?

顺城区18826053204: 帮忙看看这段汇编有没有问题
师享复方: 跟据arm的体系结构,分为取指令,解释,执行三步,第步有一个时钟周期,因为你在程序中有BX指令,而且没有关中断.进一下中断,什么都黄了.

顺城区18826053204: 帮忙看看这段汇编代码有什么问题
师享复方: DATA SEGMENT STRING DB 'HAPPY DAY A' len equ $-STRING COUNT DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CX,len; 循环次数 MOV DX,0; 初始化,用DX记录...

顺城区18826053204: 汇编语言程序问题:3个数比较. -
师享复方: CSEG SEGMENT ASSUME CS:CSEG START: XOR DH,DH MOV AH,01H INT 21H MOV BH,AL MOV AH,01H INT 21H MOV BL,AL MOV AH,01H INT 21H MOV CH,AL CMP BH,BL JNE N1 ADD DH,1 N1: CMP BH,CH JNE N2 ADD DH,1 N2: ...

顺城区18826053204: 汇编语言问题 -
师享复方: 这里有两个问题:1. 一部分代码和格式,是一种古老的用来保证程序结束后能正确返回DOS的算法框架.START PROC FAR ;必须用FAR定义,以保证最后的RET被汇编成远调用返回的RETF PUSH DS ;从这里开始的三条指令,是在堆栈中...

顺城区18826053204: 单片机汇编语言的几个疑问 -
师享复方: 1、如果程序代码空间不紧张的话,建议你全部使用LJMP,或者如果跳转的目标段程序相隔很近,也可以使用SJMP.个人认为AJMP最麻烦:其机器码所标注的地址位从A10到A0,计11位,000H~7FFH,也就是说跳转到的地址与当前地址的A...

顺城区18826053204: 哪位大牛能帮看看这段程序有什么问题 急! -
师享复方: 一:define NULL 0 不需要再定义了二:没有包含#include三:input 函数 本人 不清楚有没有问题总体上说 程序写的 相当可以了...

顺城区18826053204: 帮我看一下下面的有什么错误(简单汇编) -
师享复方: 你这个程序的错误修改好了,bl和bh里面分别是A、B数组的长度.应该完全符合你的要求.winder segmenta db 'luoyao 20101120101$'b db 2h dup(0h,0h,0h,0h,0h)c dw...

顺城区18826053204: 几个简单的汇编语言问题 -
师享复方: 1.判断下列汇编语句的正确性并说明原因 MOV [AX],BH ;错,AX不能加方括号来访问地址 MOV [SP],AX ;错,SP不能加方括号 OUT 10H,CL ;错,OUT指令中源操作数只能是AX或AL CMP 36H,AL ;错,CMP指令中目的操作数不能为立即数...

顺城区18826053204: 汇编语言报错Missing or unreachable CS,求大神检查错误,如图 -
师享复方: 去掉 time 和table 后面的冒号 带冒号的标号叫地址标准,只能在code段内使用

顺城区18826053204: 汇编语言编译时出现如下问题,求大神告知怎么破~ -
师享复方: 第一没有定义入口地址需要加ORG 0000H 第二,END要放在程序的末尾,不然END之后的程序段就没有意义了.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网