试编写一个汇编语言程序,求出首地址为DATA的100个无符号字数组中的最小的书,并将它存放在BX寄存器。

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-08-31
试编制一个汇编语言程序,求出首地址为data的100dh字数组中的最小偶数,并把它存放

假设数组存放的是无符号数

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 cx,50 ;循环次数
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为首地址的相应字中(写一下注释)

  • 编写一汇编语言程序,要求从键盘接收一个四位的十六进制数,并在终端上...
    答:LEA SI, HEX + 2;取输入字符串的首地址 MOV CH, NNN ;取输入字符的个数,用来控制循环处理的次数 CONV:MOV BL, [SI] ;取来一个字符 CMP BL, 0DH ;和回车符进行比较 JZ END0 ;是, 即结束 CMP BL, '0'JB ERROR ;小于'0'转移 CMP BL, 'F'JA E...
  • 一个汇编程序 5.数制转换 试编写一汇编语言程序,要求从键盘接收一个四...
    答:LEA SI, HEX + 2;取输入字符串的首地址 MOV CH, NNN ;取输入字符的个数,用来控制循环处理的次数 CONV:MOV BL, [SI] ;取来一个字符 CMP BL, 0DH ;和回车符进行比较 JZ END0 ;是, 即结束 CMP BL, '0'JB ERROR ;小于'0'转移 CMP BL, '9'JA E...
  • 汇编语言程序设计
    答:; si=一个N字节数的字符串TABLE首地址 ; cx=字符串长度,N ; ah=要查找的字符 ; 出口参数:bl=该字符出现的次数 Find_Chr Proc Near Find_Chr: lodsb cmp al,ah ;是指定的字符?jnz $+4 ;不是 inc bl ;是,计数 loop Find_Chr ;判断下一个字符 ret Find_Chr EndP ; --- ...
  • 汇编语言 编程
    答:assume cs:code ---是你的代码段的开始,完整的程序要有的 data segment ---数据段 buf dw a1,a2,...,a20 ;这里不给出具体数据 ,用来存储数据a1到a20 sum dw 0 ---给sum赋值为0 data ends start:mov bx,offset buf ---这个是取数组buf的首地址 mov si,0 --指向数组的下标 mov dx...
  • 汇编语言编写完整的程序求N!,可以自由输入n的值,输出为十进制数_百度知...
    答:; 功能:键盘输入一个指定位数的十进制数字,将其转换成二进制数并保存在指定的内存单元。; 由于限定最大数据类型为字,所以,数字位数最多:5,最大无符号数:65536; 约定:直接回车,视为数字0; 入口:@@Digits=数字位数;di=保存输入的数字首地址; @@Type_Data=保存的数据类型,B=字节类型,W=字类型。; 出口:...
  • 用汇编语言编一个程序:在以buf为首地址的内存中存入10个数,并排序输出...
    答: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 ? ;用户...
  • 用汇编语言设计一个小程序
    答:串首地址置入 si PUSH AX PUSH CX PUSH DX PUSH SI PUSH DI PUSHF PUSH CX POP DX DEC DX @SORTL1: MOV CX,DX MOV DI,
  • 汇编语言编程实现下面问题:
    答:一个循环结构就可以实现你的要求:1、循环初始化: PLUS、NEGT和ZERO单元清零,设循环次数为10,是一个指针指向首地址为TABLE内存字节单元。2、循环体: ...采纳率:82% 来自:芝麻团 擅长: 丹东市 内存 汇编语言 工程技术科学 其他回答 以前编写过这样的程序,稍稍改了改,就适合于楼主的要求了。下面的程序已经...
  • 编写汇编语言程序段:从键盘输入一个字符串“please input a number...
    答:buff db 255 dup(?)bbb: push cs pop ds push cs pop es lea dx, data mov ah,10 int 21h ; 从键盘输入字符串,字符串的字符个数在n中,串的开始地址为buff首地址 ... mov ah,4ch int 21hcode ends end start ...
  • 请问汇编语言,怎样在运行时获得一个标号的首地址?
    答:标号的地址不是在运行时获得的,是在编译时得到的(在编译时得到的是相对地址,在链接时得到“绝对”地址)。