汇编语言编程100例题(汇编语言编程题)

:暂无数据 2026-08-13 03:20:07 1

汇编语言编程100例题(汇编语言编程题)

大家好,今天小编来为大家解答以下的问题,关于汇编语言编程100例题,汇编语言编程题这个很多人还不知道,现在让我们一起来看看吧!

本文目录

汇编语言编程题

data segment
x db ?;运行时给不同的值
y db ?
data ends
code segment
assume ds:data,cs:code
start:
mov ax,data
mov ds,ax
mov al,x
and al,al
jz zero
jns plus
mov y,-1
jmp tj
zero:mov y,0
jmp tj
plus:mov y,1
tj:mov ax,4c00h
int 21h
code ends
end start

用汇编语言求100以内质数的和

; 下面的程序是16位汇编,编译通过,运行正确。
; Program Name: Prime_Num.asm
Prime_Num SEGMENT
ASSUME CS:Prime_Num,DS:Prime_Num
ORG 100H
Start: jmp Begin
Estimation Proc Near
; Subroutine 判断质数子程序
; 入口参数:ax=一个有符号整数
; 返回参数:若cx是质数,进位标志置位;否则,清位
Locals
push si
push cx
push ax
lea si,PrimeLess
cmp al,1
jz @@Not_Prime ;1不是质数
mov cx,4
@@Less_Prime:
cmp al,
jz @@Yes_Prime ;2、3、5、7是质数
inc si
loop @@Less_Prime
test ax,1
jz @@Not_Prime ;除了2,其它偶数不是质数
lea si,PrimeLess
mov cx,3
@@Divide357:
push ax
div byte ptr
cmp ah,0
jz @@NotPrime
pop ax
inc si
loop @@Divide357
jmp @@Yes_Prime
@@NotPrime:
pop ax
jmp @@Not_Prime
@@Not_Prime:
pop ax
pop cx
pop si
clc ;不是质数,清进位标志
ret
@@Yes_Prime:
pop ax
pop cx
pop si
stc ;是质数,置进位标志
ret
PrimeLess DB 2,3,5,7
Estimation EndP
Prime_Sum DW 0 ;质数的和
Primes DW 0 ;能够整除该和的质数的个数
Begin: lea di,PrimeNum ; 质数数列首地址
mov cx,100
PrimeSum: push cx
pop ax
call Estimation ;判断质数子程序
jnc NextNumber
stosb ;把质数保存在质数数列里
add Prime_Sum,ax
NextNumber:loop PrimeSum
push di
pop cx
lea si,PrimeNum
sub cx,si ;质数个数
xor bh,bh
div_Exactly:
mov ax,Prime_Sum
xor dx,dx
mov bl,byte ptr
div bx
inc si
cmp dx,0
jnz NextPrime
inc Primes
NextPrime: loop div_Exactly
mov dx,Prime_Sum ;质数的和
mov ax,Primes ;能够整除该和的质数的个数
Exit_Proc: mov ax,4c00h ;结束程序
int 21h
PrimeNum DB ? ;把质数保存在这里
Prime_Num ENDS
END Start

写一个汇编语言程序,完成100以内十进制数相加运算

1.现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=0B7H,(21203H)=65H,是说明下面各条指令执行完之后AX寄存器中的内容
MOV AX,1200H ;AX=1200H
MOV AX,BX ;AX=100H
MOV AX, ;AX=4C2AH
MOV AX, ;AX=3412H
MOV AX, ;AX=4C2AH
MOV AX, ;AX=7856H
MOV AX, ;AX=65B7H
2.判断一下指令书写是否正确,如有错误指出错在何处并且改正
MOV AL,BX ;错误。操作数类型不匹配,AL是8位寄存器,BX是16位寄存器。可改为:MOV AL,BL或MOV AX,BX等
MOV AL,SL ;若SL是变量或常量,正确;否则,错误。可改为:MOV AL,BL或MOV AL,DL等
INC 等
MOV 5,AL ;错误。不允许立即数作为目的操作数,可改为:MOV BL,AL或MOV AH,AL等
MOV 等
MOV BL,0F5H ;正确
POP CS ;错误。代码段寄存器CS不能作为目的操作数,可改为:POP DS或POP ES等
MOV DX,2000H ;正确
MOV ES,3278H ;错误。立即数不能直接传送给段寄存器,可改为:
MOV AX,3278H
MOV ES,AX
PUSH AL ;错误。进栈指令的操作数必须是16位(或16的整数倍)寄存器或是存储单元,可改为:PUSH AX或PUSH 等

汇编语言编程题:在内存地址为buff开始的单元定义了100个字节,编译程序要求完成填充这100个字节从31开始

        CODE  SEGMENT
              ASSUME    CS:CODE
        BUFF  DB        100 DUP(?)
           N  EQU       $-BUFF
           Y  DB        0
           Z  DW        0
      START:  PUSH      CS
              POP       DS
              PUSH      CS
              POP       ES
              LEA       DI,BUFF
              MOV       AL,31
              MOV       CX,N
              CLD
         @1:
              STOSB
              ADD       AL,2
              LOOP      @1
              LEA       SI,BUFF
              MOV       CX,N
              CLD
         @2:
              LODSB
              CBW
              CMP       AX,0
              JBE       @3
              INC       Y
              ADD       Z,AX
         @3:
              LOOP      @2
              MOV       AL,Y
              CBW
              CALL      DSPAX2
              MOV       AX,Z
              CALL      DSPAX2
              MOV       AL,Y
              CBW
              CALL      DSPAX10
              MOV       AX,Z
              CALL      DSPAX10
              MOV       AH,4CH
              INT       21H
 ;================================    
      DSPAX2  PROC      NEAR
              PUSH      AX
              PUSH      BX
              PUSH      CX
              PUSH      DX
              PUSHF
              XOR       CX,CX
              MOV       BX,2
  @DSPAX2_1:
              XOR       DX,DX
              DIV       BX
              INC       CX
              OR        DX,30H
              PUSH      DX
              CMP       AX,0
              JNE       @DSPAX2_1
              MOV       AH,2
 @DISPAX2_2:
              POP       DX
              CMP       DL,3AH
              JB        @DISPAX2_3
              ADD       DL,7
 @DISPAX2_3:
              INT       21H
              LOOP      @DISPAX2_2
              MOV       DL,32
              INT       21H
              POPF
              POP       DX
              POP       CX
              POP       BX
              POP       AX
              RET
      DSPAX2  ENDP
;================================    
     DSPAX10  PROC      NEAR
              PUSH      AX
              PUSH      BX
              PUSH      CX
              PUSH      DX
              PUSHF
              XOR       CX,CX
              MOV       BX,10
 @DSPAX10_1:
              XOR       DX,DX
              DIV       BX
              INC       CX
              OR        DX,30H
              PUSH      DX
              CMP       AX,0
              JNE       @DSPAX10_1
              MOV       AH,2
            @DISPAX10_2:
              POP       DX
              CMP       DL,3AH
              JB        @DISPAX10_3
              ADD       DL,7
            @DISPAX10_3:
              INT       21H
              LOOP      @DISPAX10_2
              MOV       DL,32
              INT       21H
              POPF
              POP       DX
              POP       CX
              POP       BX
              POP       AX
              RET
     DSPAX10  ENDP
;================================
        CODE  ENDS
              END       START

汇编语言编程题目

data segment
team db 10 dup(?)
avr db 0
data ends
code segment
assume cs:code,ds:data
start: mov ax,seg data
mov es,ax
mov di,0
mov ds,ax
mov si,0
mov al,3
mov cx,10
cld
@1: stosb
inc al
loop @1
call aver
call dspal
mov ah,4ch
int 21h
;==================================
aver proc near
mov cx,10
cld
clc
mov bx,0
@p1: lodsb
add bl,al
adc bh,0
loop @p1
mov ax,bx
mov bl,10
div bl
mov avr,al
ret
aver endp
;===============================
DSPAL PROC NEAR
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSHF
XOR AH,AH
XOR CX,CX
MOV BL,10
@DSPAL1:
DIV BL
INC CX
MOV DL,AH
XOR AH,AH
OR DX,30H
PUSH DX
CMP AL,0
JNE @DSPAL1
MOV AH,2
@DISPAL2:
POP DX
INT 21H
LOOP @DISPAL2
MOV DL,32
INT 21H
POPF
POP DX
POP CX
POP BX
POP AX
RET
DSPAL ENDP
;================================
code ends
end start

100行的汇编语言程序

dat segment
data db 10 dup(0)
input db ’input:$’
output db ’output:$’
enter db 0dh,0ah,’$’
dat ends
cod segment
assume ds:dat,cs:cod
;-----------------------主程序
start:
mov ax,dat
mov ds,ax ;数据段寄存器赋值

lea si,data ;SI指向DATA数组首单元
mov cl,4
ppp:
mov bx,0 ;BX清零

lea dx,input ;这三行调用INT 21H中断例程的9号功能输出DS:DX指向的字符串,以’$’结尾
mov ah,9 ;以下代码若有类似的三句,实现功能类似
int 21h ;显示输入提示

;-----------------------开始输入十六进制数
get:
mov ah,1 ;这两行调用INT 21H中断例程1号功能,等待用户输入一个字符,保存入AL中
int 21h

;以下6对代码依次比较输入字符,并跳转到相应操作
cmp al,’*’
jz kkk ;输入’*’号,退出程序

cmp al,0dh ;0DH是回车键对应的字符
jz mess ;输入回车,跳出get循环(get循环:实现输入十六进制数并保存到BX的功能)

cmp al,30h ;这4行判断是否是’0’~’9’
jb get

cmp al,39h
jbe num

cmp al,’A’ ;这4行判断是否是’A’~’F’
jb get

cmp al,’F’
jbe big

cmp al,’a’ ;这4行判断是否是’a’~’f’
jb get

cmp al,’f’
jbe big

jmp get

num: ;对数字进行处理
and al,0fh ;al高4位清零,保留低4位
jmp next

big: ;对大写字母或者小写字母进行处理
sub al,7
and al,0fh

next:
shl bx,cl ;BX左移4位
add bl,al ;将数字保存到BL的低4位中
jmp get
;-----------------------
mess:
lea dx,enter
mov ah,9
int 21h ;回车、换行

lea dx,output
mov ah,9
int 21h ;显示输出提示

mov dx,0
mov ax,bx
mov bx,10 ;进制数
again:
call buf
cmp ax,0 ;商如果为0,表示该十六进制数对应的十进制数的每一个数位的值都存入了DATA数组
jnz again

mov ah,2 ;INT 21H的2号功能:将DL中保存的ASCII码对应的字符输出
ttt:
dec si
mov dl, ;取数据
int 21h ;显示

cmp si,0
jnz ttt ;判断是否取完DATA数组的所有元素,来控制循环

lea dx,enter
mov ah,9
int 21h ;回车、换行

jmp ppp ;开始下一轮输入、转换和输出
kkk:
mov ah,4ch ;退出程序的操作
int 21h
;--------------------子程序
;传入参数:BX,进制数10;DX、AX,表示一个32位16进制数
;返回值:AX
;功能:
;1. 将DX、AX表示的16进制数除以10,得到余数(余数在0~9之间,即对应十进制无符号数的个位数字)
;2. 将其转换为对应字符的ASCII码(即1转换为’1’),并保存到SI指向的DATA数组元素的位置
;3. SI指向DATA数组的下一个元素
buf proc
div bx
add dl,30h
mov ,dl
mov dl,0
inc si
ret
buf endp
cod ends
end start
;总结:这段程序实现的功能
;1. 十六进制输入一个数,输入回车表示输入结束,输入’*’表示退出程序,保存到寄存器中
;2. 十六进制数转换为十进制无符号数,使用了类似于栈的操作的方法
;3. 十进制无符号数转换为对应字符的ASCII码(2和3由子程序buf完成)
;4. ASCII码对应字符的输出的功能

汇编题,写一个完整的程序,实现1到100之间的偶数求和,将结果保存在数据段SUM中

DATA SEGMENT
SUM DW 0
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
START: MOV AX,DATA
MOV DS,AX

MOV AX,DATA
MOV ES,AX

准备循环数据,偶数,所以这里使用了取巧的方法,直接加2。通用的可以使用模2的方法计算。

MOV CX,50
MOV BX,2
MYLOOP。

ADD SUM,BX
ADD BX,2

LOOP MYLOOP

扩展资料:

单个单元格引用的求和与区域求和,使用此类公式:=SUM(A1,A2,A3,B1,B2,B3)

这与当在引用的区域内插入或删除行时一样地容易出错,原因相同。 最好使用单个区域,如:=SUM(A1:A3,B1:B3)

这样当添加或删除行时会进行更新。单个单元格引用的求和与区域求和使用此类公式:=SUM(A1,A2,A3,B1,B2,B3)

这与当在引用的区域内插入或删除行时一样地容易出错,原因相同。 最好使用单个区域,如:=SUM(A1:A3,B1:B3),这样当添加或删除行时会进行更新。

汇编语言编程题的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于汇编语言编程题、汇编语言编程题的信息别忘了在本站进行查找哦。

汇编语言编程100例题(汇编语言编程题)

本文编辑:admin

更多文章:


数据库管理系统和数据库系统分别侧重(数据库,数据库管理系统,数据库系统,这三个分别是什么意思并举个实例)

数据库管理系统和数据库系统分别侧重(数据库,数据库管理系统,数据库系统,这三个分别是什么意思并举个实例)

今天给各位分享数据库,数据库管理系统,数据库系统,这三个分别是什么意思并举个实例的知识,其中也会对数据库,数据库管理系统,数据库系统,这三个分别是什么意思并举个实例进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年9月7日 17:00

编程语言出现的先后顺序(最早的编程语言是哪一个)

编程语言出现的先后顺序(最早的编程语言是哪一个)

今天给各位分享最早的编程语言是哪一个的知识,其中也会对最早的编程语言是哪一个进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年9月7日 16:10

小程序源码有什么用(大商创小程序源码好用吗)

小程序源码有什么用(大商创小程序源码好用吗)

“小程序源码有什么用”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看小程序源码有什么用(大商创小程序源码好用吗)!

2026年9月7日 15:40

springmvc的依赖(springMVC的注入方式有哪几种,这与springMVC依赖)

springmvc的依赖(springMVC的注入方式有哪几种,这与springMVC依赖)

大家好,关于springmvc的依赖很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于springMVC的注入方式有哪几种,这与springMVC依赖的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还

2026年9月7日 14:00

it培训评价网(it培训排名机构十大IT培训机构)

it培训评价网(it培训排名机构十大IT培训机构)

这篇文章给大家聊聊关于it培训评价网,以及it培训排名机构十大IT培训机构对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年9月7日 13:00

个人博客页面布局(新手站长怎样做好独立博客初期运营工作)

个人博客页面布局(新手站长怎样做好独立博客初期运营工作)

大家好,如果您还对个人博客页面布局不太了解,没有关系,今天就由本站为大家分享个人博客页面布局的知识,包括新手站长怎样做好独立博客初期运营工作的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年9月7日 12:40

display flex 自动换行(overflow-y:hidden;overflow-x:auto;无效解决方法)

display flex 自动换行(overflow-y:hidden;overflow-x:auto;无效解决方法)

大家好,关于display flex 自动换行很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于overflow-y:hidden;overflow-x:auto;无效解决方法的知识点,相信应该可以解决大家的一些困惑和问题,如

2026年9月7日 11:00

小程序免认证源码(小程序源码都能干嘛)

小程序免认证源码(小程序源码都能干嘛)

本篇文章给大家谈谈小程序免认证源码,以及小程序源码都能干嘛对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年9月7日 10:50

timestamp without time zone(Postgresql中to_date()函数使用问题)

timestamp without time zone(Postgresql中to_date()函数使用问题)

各位老铁们好,相信很多人对timestamp without time zone都不是特别的了解,因此呢,今天就来为大家分享下关于timestamp without time zone以及Postgresql中to_date()函数使用问题

2026年9月7日 09:40

网页制作代码特效大全(谁知道网页打字机特效的代码)

网页制作代码特效大全(谁知道网页打字机特效的代码)

大家好,如果您还对网页制作代码特效大全不太了解,没有关系,今天就由本站为大家分享网页制作代码特效大全的知识,包括谁知道网页打字机特效的代码的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年9月7日 04:20

最近更新

热门文章

yoga pro 14s carbon(yoga14s接口类型)
2026-07-03 17:50:01 浏览:5
domino directory(帮我翻译一下Recipient’s Domino Directory entry does not specify a valid Notes mail file)
2026-08-03 19:20:01 浏览:4
标签列表