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

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

汇编语言编程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年11月6日 08:10

国产免费的服务器系统(服务器用什么系统)

国产免费的服务器系统(服务器用什么系统)

大家好,关于国产免费的服务器系统很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于服务器用什么系统的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2026年11月6日 07:50

代码生成器app下载手机版(条码生成软件免费)

代码生成器app下载手机版(条码生成软件免费)

各位老铁们好,相信很多人对代码生成器app下载手机版都不是特别的了解,因此呢,今天就来为大家分享下关于代码生成器app下载手机版以及条码生成软件免费的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年11月6日 05:50

php递归删除目录(php怎么删除文件夹和文件夹下的所有文件)

php递归删除目录(php怎么删除文件夹和文件夹下的所有文件)

各位老铁们好,相信很多人对php递归删除目录都不是特别的了解,因此呢,今天就来为大家分享下关于php递归删除目录以及php怎么删除文件夹和文件夹下的所有文件的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年11月6日 03:30

vimoapp安卓手机版(制作VLog常用的APP有哪些呢)

vimoapp安卓手机版(制作VLog常用的APP有哪些呢)

大家好,vimoapp安卓手机版相信很多的网友都不是很明白,包括制作VLog常用的APP有哪些呢也是一样,不过没有关系,接下来就来为大家分享关于vimoapp安卓手机版和制作VLog常用的APP有哪些呢的一些知识点,大家可以关注收藏,免得下

2026年11月6日 01:50

拜登国防授权法案(少数国家对来自中国的旅客采取入境限制措施,中方:将采取对等措施)

拜登国防授权法案(少数国家对来自中国的旅客采取入境限制措施,中方:将采取对等措施)

“拜登国防授权法案”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看拜登国防授权法案(少数国家对来自中国的旅客采取入境限制措施,中方:将采取对等措施)!

2026年11月6日 00:40

sql数据库触发器怎么写(SQL 触发器编写)

sql数据库触发器怎么写(SQL 触发器编写)

今天给各位分享SQL 触发器编写的知识,其中也会对SQL 触发器编写进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年11月5日 22:50

手机网页游戏大全网站(WAP手机网页游戏网站)

手机网页游戏大全网站(WAP手机网页游戏网站)

大家好,手机网页游戏大全网站相信很多的网友都不是很明白,包括WAP手机网页游戏网站也是一样,不过没有关系,接下来就来为大家分享关于手机网页游戏大全网站和WAP手机网页游戏网站的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧

2026年11月5日 22:10

广域网osi参考模型(广域网技术详细资料大全)

广域网osi参考模型(广域网技术详细资料大全)

大家好,关于广域网osi参考模型很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于广域网技术详细资料大全的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2026年11月5日 20:20

lua脚本怎么用(安卓手机怎么打开.lua的脚本)

lua脚本怎么用(安卓手机怎么打开.lua的脚本)

本篇文章给大家谈谈lua脚本怎么用,以及安卓手机怎么打开.lua的脚本对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年11月5日 19:10

最近更新

华硕x403m参数(华硕笔记本x403m)
2026-11-06 07:40:02 浏览:0
热门文章

新站如何通过网站维护提升SEO排名
2026-10-13 20:56:21 浏览:6
sql server2008下载地址(如何下载SQL Server 2008 R2 SP2免费版)
2026-10-05 05:30:29 浏览:6
标签列表