试编写一个汇编语言程序,求出首地址为DATA的100个无符号字数组中的最小的书,并将它存放在BX寄存器。
假设数组存放的是无符号数
MOV SI,0
MOV BX,65534
MOV CX,100DH
LOOP1:
MOV AX,data[SI]
TEST AX,1
JNZ NEXT
CMP AX,BX
JNB NEXT
MOV BX,AX
NEXT:
INC SI
LOOP LOOP1
最小偶数存放在BX中
将第一个数写进AX中用cmp指令和第二个比较,如果第二个小就写进AX,如果第一个小什么与不做,然后AX中的数和第三个比较。。。。直到比到第一百个。这是将最小数写进AX的一种方法。
至于怎么判断是不是偶数,用and指令,将待比较的数同1进行and操作,结果是0则是偶数,是一则为奇数。
剩下的简单了,先判断是不是偶数再比较大小,奇数直接跳过,偶数同AX中数比较。。。
至于代码自己写,简单,别人写的不是你的。
mov si,0 ;数据区指针,初始为第一个元素
mov ax,word ptr data[si] ;把首字传送给ax
next: cmp ax,word ptr data[si] ;把数组的元素与ax比较
jb lop ;如果ax小于数组元素,转跳到lop
mov ax,word ptr data[si] ;否则把数组元素传送给ax
lop: inc si
inc si ;指针指向下一个元素
loop next ;循环
mov bx,ax ;把最小值传送给bx
把S Data为首地址的100个字节的无符号数加12,把结果保存到D Data为首地址的相应字中(写一下注释)
新手求教汇编语言程序,超级简单,但是我就是不会写,头疼死了
你等我 DATANUM=10 ;设有10个数据 STACK SEGMENMT STACK ‘STACK’DW 100H DUP(?)TOP LABEL WORD STACK ENDS DATA SEGMENT DATABUF DW DATANUM DB DATANUM DUP(?)DATA EDATANUMDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START:MOV AX,DATA MOV DS...
程序汇编有哪两种方式
2、采用汇编语言编写程序虽不如高级程序设计语言简便、直观,但是汇编出的目标程序占用内存较少、运行效率较高,且能直接引用计算机的各种设备资源。它通常用于编写系统的核心部分程序,或编写需要耗费大量运行时间和实时性要求较高的程序段。二、背景信息 1、汇编执行指令是机器指令的符号化表示,其操作码用...
汇编语言程序设计
; 功能:在N个字节数组中查找字符CHAR,并记录该字符出现的次数。; 入口参数:; si=一个N字节数的字符串TABLE首地址 ; cx=字符串长度,N ; ah=要查找的字符 ; 出口参数:bl=该字符出现的次数 Find_Chr Proc Near Find_Chr: lodsb cmp al,ah ;是指定的字符?jnz $+4 ;不是 inc bl ...
怎样用汇编语言完成3个个位数的比较大小
原先写过一个类似的,你可以参考一下,题目:1试编写一个汇编语言程序,要求从键盘接收三个16进制数,并根据对三个数的比较显示出如下信息:(1)如果三个数都不相等则显示ALL NOT EQU;(2)如果三个数有两个数相等则显示TWO EQU;(3)如果三个数都相等,则显示ALL EQU。程序:data ...
一个简单的编写汇编语言程序的问题
键入字符就是DOS功能调用:MOV AH,0AH ;键盘输入字符串 (10号\/0A调用)INT 21H ;从键盘上往指定缓冲区中输入字符串并送显示器显示
用汇编语言编写一个小程序(比如hello,word!)请懂的人帮忙提供源码_百度...
您正在看的汇编语言是:hello,world!win32汇编小程序。bsp; \/\/ style of message box );所以会有我们的程序段:push MB_OK lea eax,szCaption push eax lea eax,szText push eax push NULL call messageboxa 看看上面的程序,不难想到,假如在写程序时,少往堆栈里压入一个数据,那将是一个...
汇编语言编写一个简单的程序(我学的是汇编语言与接口技术)
;请从键盘任意输入一个0-59内的数,每隔一秒自加一,当加到59后跳到0从新开始自加 DATAS SEGMENT ;此处输入数据段代码 MESS0 DB 'Error char!','$' ;异常信息 MESS1 DB 'Input overflow!','$'MESS2 DB 'Must be 0~59!','$'SEPRA DB 0DH,0AH,'$' ;分隔符 TIME DB 0 MADD...
用汇编语言编写一程序
CR equ 000DH LF equ 000AH KBBack equ 0008H Name_Len equ 18 ;用户名最大长度 Pass_Len equ 8 ;密码最大长度 ; --- ; 将用户名和密码定义为一个结构类型 User Struc ; 成绩单结构类型 User_Name db Name_Len dup(?) ; 用户名 Name_Lenth db ? ;用户...
汇编语言程序设计题目,在线等答案!!!急!
;--- 14.假设变量A存放字节数据是39H, 变量B存放字节数据是36H,试编写程序实现将两个数组合后成为96 H,存放变量C中.;--- MOV AL, A ;取来A AND AL, 00001111B MOV CL, 4 SHR AL, CL ;左移4位.MOV CL, AL MOV AL, B ;取来B...
汇编语言程序设计题
编一程序将其中的负数去除后将剩下的正数重新顺序存放在以PLUS开始的数据区中。5、 编写程序段。用串处理指令,比较两个有10个字符的字符串变量CHR1和CHR2,如果两者全不相同则执行子程序OTHER,否则,顺序执行。6、编写汇编语言源程序: 设在字单元A、B和C中存放有三个数,若三个数都不为0,则求出三个数之和...
爨包鹿胎: mov cx,50 ;循环次数mov si,0 ;数据区指针,初始为第一个元素mov ax,word ptr data[si] ;把首字传送给ax next: cmp ax,word ptr data[si] ;把数组的元素与ax比较jb lop ;如果ax小于数组元素,转跳到lopmov ax,word ptr data[si] ;否则把数组元素传送给ax lop: inc siinc si ;指针指向下一个元素loop next ;循环mov bx,ax ;把最小值传送给bx
邢台市19653564788: 编写一个汇编程序,求出首地址为DATA的100DH字数中最小偶数,并存放在AX中. - ?
爨包鹿胎: mov si, offset DATA mov dx, 0FFFEhmov cx, 100Dh_1: lodswtest ax, 1jne _2cmp ax, dxjae _2mov dx, ax_2: loop _1 mov ax, dx
邢台市19653564788: 6. 试编写一个汇编语言程序,求出首地址为BUFF的100D字数组中的最小偶数,并把它存放在AX中 答; - ?
爨包鹿胎: 很简单的练习题,建议你自己写,这里我给你一些思路,首先用lea指令,载入首地址,然后开始判断,是偶数则指针下移,并把第一个偶数保存在一个寄存器AX中,然后寻找第二个,找到后和前一个偶数比较,若大于则存进寄存器AX中,小于则继续判断,直到最后一个数.
邢台市19653564788: 编写一完整的汇编程序,找出首地址为ARRAY的100个字数组中的最小偶数并把它放在MIN字单元中. 在线等呀 - ?
爨包鹿胎: data segmentarray dw .... ;100个字min dw ? data ends code segmentassume cs:code,ds:data start:mov ax,datamov ds,axmov bx,offset arraymov cx,100xor ax,ax find:test word ptr [bx],1jnz nextcmp ax,0je fristmov dx,[bx]cmp ax,dx...
邢台市19653564788: 2.试编写一程序,要求比较数组ARRAY中的三个16位补码数,并根据比较结果在终端上显示如下信息: (1) 如果 - ?
爨包鹿胎: 2.试编写一程序,要求比较数组ARRAY中的三个16位补码数,并根据比较结果在终端上显示如下信息:(1) 如果三个数都不相等则显示0;(2) 如果三个数有二个数相等则显示1;(3) 如果三个数都相等则显示2. 答; Int ARRAY[3]; ...
邢台市19653564788: 请问汇编语言,怎样在运行时获得一个标号的首地址? - ?
爨包鹿胎: 标号的地址不是在运行时获得的,是在编译时得到的(在编译时得到的是相对地址,在链接时得到“绝对”地址).
邢台市19653564788: 汇编语言题:以首地址为100:1000H 开始,存放26个字母:A、B、C、、、 - ?
爨包鹿胎: assume cs:codecode segment start: mov ax,0100H mov ds,ax;段地址设置成100H mov bx,1000H;偏移地址1000H mov si,0 mov al,'A' mov cx,26next: mov byte ptr [bx],al inc al;增加al,例如未执行al前,al='A',那么执行后al='B' inc bx;下一个地址 loop next mov ax,4c00h int 21hcode endsend start PS:若有不明白的地方,可以追问
邢台市19653564788: 汇编语言题目求解?
爨包鹿胎: 1、xor bx, bx xor ah, ah mov bx, ax mov cx, bx shl bx, 1 add bx, cx shl bx, 2 add ax, bx 2、 mov ax, ds mov es, ax mov si, 200h mov di, 100h mov cx, 200h rep movsb 3、 mov ax, array mov cx, 200 mov bh, [ax] lop1: test [ax], 1 jz lop2 cmp bh, [ax] jbe lop2 mov bh, [ax] lop2: inc ax loop lop1
邢台市19653564788: 帮我用汇编语言编个程序.?
爨包鹿胎: 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
邢台市19653564788: 试编制一程序,求出首地址为ARY的100个字数组中的最小偶数和最大奇数,放在BUF1和BUF2中?
爨包鹿胎: DATAS SEGMENT ARY DW ……;(100个字) BUF1 DW ?DATAS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATASSTART: MOV AX,DATAS MOV DS,AX MOV BX,OFFSET ARRAY MOV CX,100 XOR AX,AX F1: TEST WORD PTR ...