用汇编语言写一个判断内存中的值是大于0还是小于0的程序

作者&投稿:许股 (若有异议请与网页底部的电邮联系)
用汇编语言编了段程序统计一组数中大于0等于0小于0的个数分别存放在GZ,Z,LZ中,请问怎么将结果显示在屏幕~

调用INT 21H
功能号0AH,把你统计的数据还需要作一个转化(将16进制转化成10进制的ASCII)

;用汇编语言编了段程序统计一组数中大于0等于0小于0的个数分别存放在GZ,Z,LZ中,请问怎么将结果显示在屏幕
;
;用MASM5.0编译通过,以下是运行结果:
;
>0:
7
;
=0:
5
;
<0:
5
DATA
SEGMENT
DD1
db
1,3,5,7,-12,-45,-110,0,1,-1,0,45,0,0,0,111,-23
count
db
$-dD1
m1
db
0dh,0ah,'>0:
'
gz
db
0
db
0dh,0ah,'=0:
'
z
db
0
db
0dh,0ah,'<0:
'
lz
db
0,'$'
DATA
ENDS
CODE
SEGMENT
ASSUME
CS:CODE,DS:DATA
MAIN
PROC
FAR
START:
MOV
AX,DATA
MOV
DS,AX
mov
bx,offset
DD1
MOV
CH,0
mov
cL,count
AGAIN:
MOV
AL,[BX]
CMP
AL,0
JE
BE_0
JG
BE_D
INC
LZ
JMP
N1
BE_0:
INC
Z
JMP
N1
BE_D:
INC
GZ
N1:
INC
BX
LOOP
AGAIN
MOV
AL,30H
ADD
GZ,AL
ADD
Z,AL
ADD
LZ,AL
MOV
AH,9
MOV
DX,OFFSET
M1
INT
21H
MOV
AH,4CH
;返回DOS
INT
21H
MAIN
ENDP
CODE
ENDS
END
START

mov ax,(内存单元的值)
mov bx,(需要比较的值)
cmp ax,bx
执行后,看相关标志位的值
如果:
1.ax=bx 则zf=0

2.ax<bx 则cf=1

3.ax>bx则cf=0,并且zf=0

如果不看标志位,也可以用跳转指令来判断
如:
cmp ax,bx
je s ;等于则跳转 jb 低于跳转 ja 高于跳转
...;【其他代码可有可无】
s:(你想做的程序代码)

这种问题以后不要再问了自己看下书基本就会了,加油!

不同的cpu汇编指令不同,问的是哪种cpu

cmp
test
就可以了 但是你需要知道 内存的地址


用汇编语言编写,判断该字符串中是否有该数字或者一个特定的字符,如有将...
result in (CL) mov ax,4c00h int 21h func0 proc near mov cl,0 $0: mov bl,[si] cmp bl,'$' ;$为字符串结束符号 jz $1 cmp al,bl jnz $0 mov cl,0FFH $1: ret func0 endp cseg ends end start ...

汇编语言怎样判断两个数是不是都等于零
当两数相等时,该标志置1,否则为0。判断一个数是否为0,为负,为正,为0的话输出0,如果为负的话输出-1,如果他为正数的话输出1。汇编语言是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或...

用汇编语言编写对成绩等级的判断
ah,1 ;这两行调用INT 21H中断例程1号功能,等待用户输入一个字符,保存入AL中 int 21h ;以下6对代码依次比较输入字符,并跳转到相应操作 cmp al,'*'jz kkk ;输入'*'号,退出程序 cmp al,0dh ;0DH是回车键对应的字符 jz mess ;输入回车,跳出get循环(get循环:实现输入十六进制数并保存到BX...

帮忙做一些汇编语言的判断题吧,万分感谢!!!
1.MOV [BX], [SI]错,双操作数指令两个操作数不能同时为存储器操作数 2.MOV CS, BX错,不能使用mov指令对cs送值 3.MOV ES, SS错,段寄存器之间不能直接传送数据 4.MOV [BX], 17 错,两个操作数类型都不确定 5.MOV WORD PTR[BX], 90H 对 6.MOV SS, 13H 错,立即数不能直接送...

汇编语言 怎么实现判断一个数是正数还是负数
是补码数吗?容易,只要看最高位是0还是1就行。比如这个数现在存在AL里,那么可以这样:SHL AL, 1;把最高位移进CF符号位 JC (负数处理区标号);如果溢出位是1,说明最高位是1,是负数,否则是正数 (正数处理语句区)即使待判断的数是一个长达1G字节的大数,你也只需要把最高位的那一个字节移...

用汇编语言编写,判断键盘输入的是否是Y 若输入的是Y则显示YES Y若不...
先用1号功能输入一个字符,用cmp指令比较,然后分别输出要求的两个字符串。这个程序编写的输入大小写y都能显示“YES Y”,如果只要求输入大写“Y”才输出,就把程序中那行“and al,11011111b”去掉即可。assume cs:code,ds:data data segment yesy db 'YES Y$'noty db 'NOT...

汇编语言判断
1、MOV BL,CX ;错。操作数类型不匹配,BL是8位寄存器,CX是16位寄存器 2、MOV [BX],[DI] ;错。不允许两个操作数都是存储单元 3、MOV CX,AX ;正确 4、MUL 10H ;错。乘法指令不允许立即数作乘数 5、CMP AX,1234H ;正确

如何用汇编语言判断一组数据正负并统计其正数和负数的总个数,再放到...
假设有30个 MOV R0,#00 MOV DPTR,#TABLE;假设数据存放在rom中NEXT_ONE: MOV A,R0 MOVC A,@A+DPTR JZ ACC_IS_0 JB ACC.7,ACC_IS_N;判断是否为负数,为负数就跳转ACC_IS_P:;为正数 INC COUNT_NUM_P AJMP NEXACC_IS_N:;为负数 INC COUNT_NUM_N AJMP...

汇编语言编写一段程序 判断一个数是正是负,根据最高有效位来判断
加入判断后将正数存于30H,负数存于40H的话,这个数原来存于R0的话,程序如下:MOV A,R0 (R0内容为那个数)JB ACC.7,LOOP1 SJMP LOOP2 LOOP1:MOV 30H,A SJMP ABC LOOP2:MOV 40H,A ABC: SJMP END

用汇编语言 从键盘输入一个有符号数,判断其正负,若为负数,在屏幕上显...
;从键盘输入一个有符号数,判断其正负,;若为负数,在屏幕上显示“-”号,;若为正数,则在屏幕上显示“+”号;若为0,则显示“0”,;若输入的数据不是一个完整的有符号数,则显示“input error”;ASSUME CS:CC, DS:QQ QQ SEGMENT MSR DB 13, 10, 'Please input data: $'MSD1...

锦江区19288785537: 用汇编语言写一个判断内存中的值是大于0还是小于0的程序 -
张泄迪克: mov ax,(内存单元的值) mov bx,(需要比较的值) cmp ax,bx 执行后,看相关标志位的值 如果: 1.ax=bx 则zf=02.ax<bx 则cf=13.ax>bx则cf=0,并且zf=0如果不看标志位,也可以用跳转指令来判断 如: cmp ax,bx je s ;等于则跳转 jb 低于跳转 ja 高于跳转 ...;【其他代码可有可无】 s:(你想做的程序代码)这种问题以后不要再问了自己看下书基本就会了,加油!

锦江区19288785537: 汇编 编写程序 某一数据共有100个字,编程序找出最大的数,并传送到MAX内存单元中. -
张泄迪克: 老师要求是:输出学号和姓名, 输入数并以空格间隔 能判断错误的输入 能够循环判断编程思路:先输出学号和姓名输出"Input datas(0 - 9999):"然后输入数字,以空格间隔错误判断比较数的大小转换为十进制按回车,输出最大...

锦江区19288785537: 写一个程序,通过它可以判断各数值类型在内存中所占字节数.如: 输入:int 输出:4 -
张泄迪克: #include #include using namespace std;int main(){ char *str=new ch...

锦江区19288785537: 帮我用汇编语言编个程序.
张泄迪克: proc max ; 入口参数: SI为数据首地址,CX为个数 push si ; 出口参数: AX为最大值,BX为其地址 push cx xor ax,ax mov bx,si mov dx,ax std next1: lodsw cmp ax,dx jc nl mov dx,ax mov bx,si nl: loop next1 mov ax,dx pop cx pop si ret endp

锦江区19288785537: 用汇编语言怎么在10个数中找出最大值 -
张泄迪克: 就是排序的问题嘛可以这样 data segment num db xx,xx,xx,xx,xx,xx,xx,xx,xx,xx, data ends code segment start: mov ax,data mov ds,ax mov si,offset num mov cx,9 mov al,byte ptr num[si] jm: cmp al,byte ptr num[si+1] jb jm2 inc si loop jm jmp exit jm2: mov al,byte ptr num[si+1];al中存放的最大值 exit: mov ah,4ch int 21h code ens 能看明白码?

锦江区19288785537: 汇编语言:内存中有十个字数据,编程求最大值与最小值的和,结果送显示器显示 -
张泄迪克: code segment assume cs:code org 100h start:jmp bbb max dw ?min dw ?summ dw ?aver dw ?msg1 db 13,10,'please input the 10 numbers: ','$' msg2 db 13,10,'the max and the min numbers is: ','$' msg3 db 13,10,'the sum of the max and the min is:...

锦江区19288785537: 汇编语言关于内存的问题 -
张泄迪克: 可以用冒泡程序来做.设从BUF单元开始有N个单字节无符号数,以51单片机为例,程序如下:MOV R2,#N-1; KKKK:MOV R0,#BUF; MOV R1,#BUF+1; KKKK0:MOV R3,R2; MOV A,@R0; MOV 20H,@R1; CJNE A,20H,KKKK1; SJMP KKKK2; KKKK1:JNC KKKK2; MOV 20H,@R0; MOV A,@R1; KKKK2:INC R0; INC R1; DJNZ R3,KKKK0; DJNZ R2,KKKK; SJMP $

锦江区19288785537: 求汇编高手帮忙,汇编语言编写程序,根据内存单元中的数字X的值,求出其所绝对值值,并将结果保存在内存单. -
张泄迪克: ; CMP X, 80H JB EXIT NEG X EXIT: HLT END

锦江区19288785537: 片内RAM40H开始的单元内有10个二进制数,编程找出其中最大值并存于50H单元中 用汇编语言编写,标上注释 -
张泄迪克: 参考:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/45c15bd2cb1cf03e970a168b.html

锦江区19288785537: 汇编语言中,若自BLOCK 开始的内存缓冲区中有100个带符号的数,希望找到其中的最大值,并放在MAX 单元中 -
张泄迪克: MOV BX, OFFSET BLOCK (OFFSET代表BLOCK所在的偏移地址) MOV AX,[BX](BX是地址,而[BX]是地址中的值) INC BX (为什么用两个INC指令啊?BLOCK定义的是字,1个字是两个字节) INC BX MOV CX, 99 AGAIN: CMP AX,[BX]JG NEXTMOV AX, [BX] NEXT: INC BX(同上)INC BXDEC CXJNE AGAINMOV MAX,AXHLT(HLT什么意思啊?处理器暂停)

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