汇编语言程序设计实验报告

article/2025/10/19 13:42:09

运行环境masmplus
链接:https://pan.baidu.com/s/1jWoLfvxBxQgxd6wq21GK0w
提取码:ih43

目录

  • 实验1 汇编语言源程序的输入
    • 实验目的
    • 实验原理
    • 实验仪器
    • 实验步骤
    • 实验要求
  • 实验2 数据的建立与传送程序
    • 实验目的
    • 实验原理
    • 实验仪器
    • 实验步骤
    • 实验要求
  • 实验3 分支程序设计
    • 实验目的
    • 实验原理
    • 实验仪器
    • 实验步骤
    • 实验要求
  • 实验4 统计学生成绩程序
    • 实验目的
    • 实验原理
    • 实验仪器
    • 实验步骤
    • 实验要求
  • 实验5 学生成绩名次表实验
    • 实验目的
    • 实验原理
    • 实验仪器
    • 实验步骤
    • 实验要求

实验1 汇编语言源程序的输入

实验目的

1.通过实验了解和熟悉微机系统的配置。
2.学习在DEBUG状态下输入汇编源程序的方法。
3.初步掌握调试(在DEBUG状态下)的过程。

实验原理

1、本实验要求在DEBUG状态下输入汇编源程序,并用DEBUG命令进行调试。用单步跟踪的方法验证指令的功能。
2、 以下是给定的参考程序,并在实验时在每条指令的“;”符号右边按要求填写指令的执行结果。
注:
⑴ 微机进入DEBUG状态下之后,一切立即数和地址数据均被默认为十六进制数,在输入时数的后面不加后缀“H”;
⑵ 在DEBUG状态下执行程序时,“INT 20H”指令可使系统执行完该指令前的程序时返回到“-”提示符状态,并且恢复CS和IP寄存器原来的值。

实验仪器

微机一台。

实验步骤

1、开机后进入DOS系统,
C > DEBUG↙ (↙回车符)
- (为DEBUG 提示符)
当显示器出现提示符“-”时,说明已进入DEBUG状态,这时,可用DEBUG命令进行操作。
2、 用DEBUG的Register命令检查所有寄存器内容,并作记录。命令格式:
R [寄存器名]
该命令的功能是显示寄存器的内容,或修改某一指定寄存器内容,若[寄存器名]缺省,则显示所有寄存器内容。例如:
-R
3、 用DEBUG的Assemble命令输入汇编源程序。格式:
A [内存地址]
注:用“[ ]”符号括起来的部分表示可以省略。
该命令的功能是从指定的内存地址开始(括号不要输入)逐条输入汇编语言源程序并汇编成机器码存入内存。若地址缺省,则接上一个A命令最后一条指令之后输入汇编语句,若没有用过A命令,则从CS:0100H地址开始输入。例如:
-A
0CD3:0100-
在输入A命令之后,或每输入一条指令之后,显示器的左端给出了内存的段地址和偏移地址。
每条指令均用回车(↙)结束。若输入的指令有语法错误,DEBUG拒绝接收,并给出提示,此时可以重新输入。程序的最后一条指令输入完之后,再按一次回车键(↙),即可结束汇编命令,回到DEBUG提示符“-”状态。
4、 用DEBUG的Unassemble命令反汇编。命令格式:
U [起始地址[终止地址]]
该命令的功能是从起始地址到终止地址反汇编目标码,缺省值是接上一个U命令或从CS:0100H地址开始。例如:
-U
显示器上将显示程序的内存地址、指令机器码的汇编源程序三列对照清单。
5、用DEBUG的Trace命令单步跟踪程序。命令格式:
T 【=起始地址】【指令条数】
该命令的功能是从指定的起始地址开始逐条执行指令,每执行完一条指令,屏幕显示所有寄存器内容和下一条指令地址和指令。若[=起始地址]缺省,则T命令从CS:IP地址开始执行指令。
例如:
-T↙
重复这一过程,即可看到每条指令执行后,所有寄存器和标志寄存器的标志位内容。此时,要检查内存单元的数据,可用DEBUG的D命令。
6. 用DEBUG的Dump命令显示存贮器单元的内容。命令格式:
D[起始地址[终止地址]]
该命令的功能是从起始地址到终止地址,连续显示存贮器单元的内容。若地址缺省,则接上一个D命令或从DS:0100H地址开始显示。例如:
-D↙
参考程序:
MOV AX, 2000 ; AL=00H
MOV DS, AX ; DS=2000H
NOT AX ; AX=0DFFFH
XOR AX, AX ; AX=0000H
DEC AX ; AX=0FFFFH
INC AX ; AX=0000H
MOV BX, 2030 ; BH=20H
MOV SI, BX ; SI=2030H
MOV [SI], BL ; [2030H]=30H
MOV WORD PTR[SI], 10F ; [2030H]=0FH [2031H]=01H
MOV DI, SI ; DI=2030H
MOV [DI+50], BH ; [DI+50H]=20H
MOV BH, [SI] ; BH=0FH
MOV BL, [DI+50] ; BL=20H
MOV SP, 5000
PUSH AX ; AX=0000H [SS:4FFEH]=00H [SS:4FFFH]=00H
PUSH BX ; BX=0F20H [SS:4FFCH]=20H [SS:4FFDH]=0FH
POP AX ; AX=0F20H
POPF ; F=00000000
NEG BX ; BX=F0E0H
XCHG BX, AX ; BX=0F20H
STD ; F=01010001
STI ; F=01110001
CLD ; F=00110001
CLI ; F=00010001
ADC DI, 2050 ; DI=4081H F=00000010
ADC SP, DI ; SP=9081H F=10010010
ADC AX, 1500 ; AX=05E0H F=00000001
SUB AX, BX ; AX=F6C0H BX=0F20H
SHL AH, 1 ; AH=ECH
RCL AX, 1 ; AX=D981H
SHR BH, 1 ; BH=07H
RCR BL, 1 ; BL=90H
MOV CL, 4
MOV DX, 80F0
ROL DX, CL ; DX=0F08H CL=04H
INT 20 ; CS= F000H IP=1480H

实验要求

1、整理每条指令执行的结果,填到打印清单的右半部分(应注意内存数据检查的正确性)。
结果如上述表格所示。
2. 比较实验记录与理论分析的结果是否相同,若有不同,找出差别及问题所在。
实验记录和理论分析结果是相同的。
3.总结本次实验的体会。
主要学习了在DEBUG状态下输入汇编源程序的方法以及调试过程。当显示器出现提示符“-”时,用 DEBUG 命令进行操作,-r是显示寄存器的内容,输入汇编源程序用-a,单步执行用-t, 显示存贮器单元的内容用-d.
标志名	标志为1	标志为0OF溢出(是/否)	OV	NVDF方向(减量/增量)	DN	UPIF中断(允许/关闭)	EI	DISF符号(负/正)	NG	PLZF零(是/否)	ZR	NZAF辅助进位(是/否)	AC	NAPF奇偶(偶/奇)	PE	POCF进位(是/否)	CY	NC

实验2 数据的建立与传送程序

实验目的

1、继续学习DEBUG命令。
2、验证指令的功能。

实验原理

在DEBUG状态下,分别输入下面各程序段,每输入完一个程序段,用G命令进行连续方式执行程序,在连续执行时,要记录程序的执行结果。
参考程序:
1. 在内存10000H单元开始,建立00H~0FH~00H 31个数,要求00H~0FH数据逐渐增大,0FH~00H逐渐减小。该程序从内存CS:0100H地址开始输入。
MOV AX, 1000H
MOV DS, AX
MOV SI, 0
MOV CL, 0FH
XOR AX, AX
PPE1: MOV [SI], AL
INC SI
INC AL
DEC CL
JNZ PPE1
MOV CX, 10H
PPE2: MOV [SI], AL
INC SI
DEC AL
LOOP PPE2
INT 20H
注:转移指令的符号地址直接用绝对偏移地址,该地址在用A命令汇编输入时,可以看到程序全部运行完之后,可用DEBUG的Dump命令查看建立的数据块内容。例如:
-D1000:00 1E
在这里插入图片描述

2、把上一个程序的执行结果(建立的31个字节数据块,其首地址在10000H),分几种方式传送到以下指定的区域。
(a) 该程序从内存CS:0150H开始输入。把数据块传送到15050H开始的存贮区域中。
参考程序: MOV AX, 1000H
MOV DS, AX
MOV SI, 0
MOV DI, 5050H
MOV CX, 1FH ; 数据块长度是31
PPEA: MOV AL, [SI]
MOV [DI], AL
INC SI
INC DI
LOOP PPEA
INT 20H
检查内存数据块的传送情况,可用“D”命令。
在这里插入图片描述

(b) 用串传送指令MOVSB,把数据块传送到15150H开始的区域,该程序从内存CS:0200H开始输入。
检查程序最后的执行结果,可用“D”命令,例如:
-D1000:5150↙
在这里插入图片描述

© 用重复串操作指令“REP MOVSB”把数据块传送到15250H开始的区域。该程序从CS:250H地址开始输入。
检查程序的最后执行结果时,可用:
-D1000: 5250H
在这里插入图片描述

(d) 用串操作的减量工作方式,把数据块传送到25050H开始的区域。该程序从CS:0300H开始输入。
检查程序的最后执行结果,用D命令:
-D2000:5050↙

在这里插入图片描述

实验仪器

微机一台。

实验步骤

参照实验一的步骤,按照本实验程序的内容,分别输入各段程序,连续执行程序,记录每个程序段的最后结果。若想把源数据块重新换一批数据,可以用DEBUG的Fill命令填充新的数据。例如:
-F1000:00 L1F 33↙
从1000:0000H开始的31个字节被替换成33H。

实验要求

预习要求:
1.认真阅读DEBUG调试程序的命令说明。
2.仔细阅读本实验给出的程序段。
3.写出每个程序段的结果数据(分析结果),并说明结果所在的位置(寄存器或存贮器)。
报告要求:
1、整理每个程序段在实验时的记录内容。
如上图所示。
2、 比较每个程序段的特点。
第一个程序执行完后,即已经存入数据,第二个程序采用了四种方式将它的执行结果传送到了指定的区域,不论是串操作指令,重复串操作指令,串操作的减量工作方式,都精确的传送到了指定的区域。
3、分析本次实验出现的问题,找出问题所在。
本次实验进行时,出现了用g命令运行死掉的情况,int20h 来结束程序有要求的,就时栈顶必须是 psp:0000 向量,最后我直接用 g=100 107 直接在需要的功能后停下来,就解决了问题。

实验3 分支程序设计

实验目的

⒈、练习分支程序的编写方法。
⒉、练习汇编语言程序的上机过程。

实验原理

⒈、通过分支程序设计调试和运行,进一步熟悉掌握汇编程序执行的软件环境。
⒉、通过分支程序的执行过程,熟悉EDIT的使用,建立OBJ文件EXE文件的方法。

实验仪器

⒈、 微机一台。

实验步骤

1.给出三个有符号数,编写一个比较相等关系的程序:
(1)如果这三个数都不相等,则显示0;
(2)如果这三个数中有两个数相等,则显示1;
(3)如果这三个数都相等,则显示2;
源程序如下:

.model small.stack.data				;给出三个数据msgst db 'input three number:',0dh,0ah,'$'var1 db ?var2 db ?var3 db ?temp db ?msg0 db '0$'msg1 db '1$'msg2 db '2$'.code.startupmov dx,offset msgstmov ah,9int 21h       	;显示提示信息call readsiw		;第一个数mov al,tempmov var1,alcall readsiw		;第二个数mov al,tempmov var2,alcall readsiw		;第三个数mov al,tempmov var3,almov al,var1cmp al,var2		;12je equal			;如果相等,跳转jnz again
equal: cmp al,var3		;23je second			;1=2 2=3jnz first			;1=2 2!=3 
again:			;1!=2mov al,var1cmp al,var3je first			;1=3jnz 	again1		;1!=3
again1:mov al,var2cmp al,var3je firstjnz zonejmp done
zone:mov dx,offset msg0jmp done
first:mov dx,offset msg1jmp done
second:mov dx,offset msg2jmp done
done:mov ah,9int 21h.exit
readsiw procpush ax		;保护寄存器push bxpush cxxor bx,bx		;bx保存结果xor cx,cx		;cx为正负标志,0为正,-1为负,默认为正
rsiw0: mov ah,1	;输入第一个字符,正号或者负号int 21hcmp al,'+'	jz rsiw1		;如果是正,cx原本就是0,向下继续输字符,zf=1跳转cmp al,'-'		jnz rsiw2		;如果不是负,则输入的不对mov cx,-1	;输入的是负数,设置cx=-1
rsiw1:mov ah,1int 21h
rsiw2:cmp al,'0'	;不是09之间数码,结束jb rsiw3		;低于0cmp al,'9'ja rsiw3		;高于9sub al,30h	;09之间的数码,转换,字符0的ascii码是30Hxor ah,ah		;AL零位扩展为AXshl bx,1shl bx,1add bx,dxadd bx,ax		;原数乘10后,与新数码相加jmp rsiw1		;继续转换下一个数位
rsiw3:cmp cx,0	;判断是正数还是负数jz rsiw4		;是正数,跳转neg bx		;是负数,进行求补
rsiw4: mov temp,bl		;设置出口参数pop cxpop bxpop axret				;子程序返回
readsiw endpend

执行结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.从键盘上输入一串字符到输入缓冲区,找出其中的大写字母和小写字母,并分别统计它们的个数,结果放到变量num1和num2中,要求在屏幕输出显示所有字母及变量num1和num2的值。
源程序如下:

data segmentmsg db 'please input string:$'	;缓冲区定义buf1 db 81				;缓冲区第零个字节,申请的存放数据的缓冲区的字节数db ?					;缓冲区第一个字节,实际存放的字符个数db 81 dup(0)			;存放数据的81个字节初始全为0;用户从键盘输入的字符从第2个字节开始存放,直到用户输入回车键为止,并将回车键码(0DH)加在刚才输入字符串的末尾上buf2 db 81 dup(0)crlf db 0ah,0dh,'$'msg0 db 'The String is:','$'msg1 db 'The number of Capital is:','$'num1 db 30h,0ah,0dh,'$'		;保存大写字母个数msg2 db 'The number of Lowercase is:','$'num2 db 30h,'$'				;保存小写字母个数
data ends
stack segment
stack ends
code segmentassume cs:code,ds:data,ss:stack	;code段和cs这个段寄存器相关联
start:mov ax,data					;初始化数据段寄存器的值mov ds,ax					;执行完,ds保存的是数据段的段基地址lea dx,msg					;取msg偏移地址mov ah,9int 21h						;输入提示信息lea dx,buf1					;接收输入的字符串mov ah,10int 21hlea dx,crlfmov ah,9int 21hmov al,buf1+1					;buf1+1是输入的字符个数mov ah,0mov cx,ax					;cx是循环变量xor si,siadd si,02hlea di,buf2					;DI指向字符串变量BUFB
again:mov al,buf1[si]mov [di],alcmp al,'A'						;A~Z 41h~5Ah a~z 61h~7Ahjb next1						;低于A,直接结束,读取下一个字符cmp al,'Z'						;和Z比较,低于它就是大写字母ja next2						;再跳转判断是否是小写字母inc num1						;是大写字母jmp next1
next2:cmp al,'z'						;低于a或者高于z,直接结束ja next1cmp al,'a'jb next1inc num2
next1:inc siinc diloop againlea dx,crlfmov ah,9int 21hlea dx,msg0				;输出所有字符提示信息mov ah,9int 21hlea dx,buf2				;输出所有字符mov ah,9int 21hlea dx,msg1				;大写字符提示信息mov ah,9int 21hlea dx,num1				;大写字符数mov ah,9int 21hlea dx,crlfmov ah,9int 21hlea dx,msg2				;小写字符提示信息mov ah,9int 21hlea dx,num2				;小写字符数mov ah,9int 21hlea dx,crlfmov ah,9int 21hmov ah,4chint 21h
code ends
end start

执行结果:
在这里插入图片描述

实验要求

1.该源程序在DEBUG和EDIT两种状态下运行。
2. 实验报告中要有源程序和执行结果。

实验4 统计学生成绩程序

实验目的

进一步掌握分支程序和循环程序的编写方法。

实验原理

设有10个学生的成绩分别为56、69、84、82、73、88、99、63、100和80分。试编制程序分别统计低于60分、60~69分、70~79分、80~89分、90~99分及100分的人数存放到s5、s6、s7、s8、s9及s10单元中。
这一题目的算法很简单,成绩分等部分采用分支结构,统计所有成绩则用循环结构完成。程序框图如下图所示。

实验仪器

1、 微机一台。

实验步骤

参考给的流程图编写源程序,进行调试。
流程图如下:

程 序 框 图

程序如下:

;PROGRAM TITLE GOES HERE――result
;************************************
DATAREA    SEGMENT                     ;DEFINE DATA SEGMENTGRADE   DW          56,69,84,82,73,88,99,63,100,80S5      DW          0S6      DW          0S7      DW          0S8      DW          0S9      DW          0S10     DW          0
DATAREA  ENDS
;************************************
PROGNAM SEGMENT                       ;DEFINE CODE SEGMENT
;----------------------------
MAIN      PROC      FAR               ; MAIN PART OF PROGRAM
ASSUME  CS:PROGNAM, DS:DATAREA
START:                                ; STARTING EXECUTION ADDRESS
; SET UP STACK FOR RETURNPUSH     DS                  ; SAVE OLD DATA SEGMENTSUB      AX,AX               ; PUT ZERO IN AXPUSH     AX                  ; SAVE IT ON STACK
; SET DS REGISTER TO CURRENT DATA SEGMENTMOV      AX,DATAREA          ; DATAREA SEGMENT ADDRMOV      DS,AX               ; INTO DS REGISTER
; MAIN PART OF PROGRAM GOES HEREMOV      S5, 0               ; INITIALIZE COUNTERMOV      S6, 0MOV      S7, 0MOV      S8, 0MOV      S9, 0MOV      S10, 0MOV      CX, 10              ; INITIALIZE LOOP COUNT VALUEMOV      BX, OFFSET GRADE      ; INITIALIZE FIRST ADDR
COMPARE:MOV      AX,[BX]             ; GET A RESULTCMP      AX, 60               ; <60?JL        FIVECMP     AX, 70                ; <70?JL       SIXCMP     AX, 80                ; <80?JL       SEVENCMP     AX, 90                ; <90?JL       EIGHTCMP     AX, 100               ; =100?JNE      NINEINC      S10JMP     SHORT CHANGE_ADDR NINE:  INC       S9JMP     SHORT CHANGE_ADDR EIGHT:  INC      S8JMP     SHORT CHANGE_ADDRSEVEN:  INC      S7JMP     SHORT CHANGE_ADDRSIX:    INC       S6JMP     SHORT CHANGE_ADDRFIVE:   INC       S5
CHANGE_ADDR:ADD     BX, 2LOOP    COMPARERET                           ; RETURN TO DOS
MAIN     ENDP                         ; END OF MAIN PART OF PROGRAM
; ------------------------------
PROGNAM  ENDS
;***************************END     START                 ; END ASSEMBLY

实验要求

1.读懂所给的程序。
2.编写将存放于S5、S6、S7、S8、S9及S10单元中的数据在屏幕上显示出来的部分程序。
编写的程序:
在S10与datarea ends之间定义了输出的提示信息:

  n1 db 'S5=$'n2 db 'S6=$'n3 db 'S7=$'n4 db 'S8=$'n5 db 'S9=$'n6 db 'S10=$'crlf db 0dh,0ah,'$'

在loop compare与ret之间进行输出:

mov dx,offset n1	;输出s5
mov ah,9
int 21h
mov dx,s5		
add dx,30h
mov ah,2
int 21h
mov dx,offset crlf
mov ah,9
int 21h
mov dx,offset n2	;输出s6
mov ah,9
int 21h
mov dx,s6		
add dx,30h
mov ah,2
int 21h
mov dx,offset crlf
mov ah,9
int 21h
mov dx,offset n3	;输出s7
mov ah,9
int 21h
mov dx,s7		
add dx,30h
mov ah,2
int 21h
mov dx,offset crlf
mov ah,9
int 21h
mov dx,offset n4;输出s8
mov ah,9
int 21h
mov dx,s8		
add dx,30h
mov ah,2
int 21h
mov dx,offset crlf
mov ah,9
int 21h
mov dx,offset n5;输出s9
mov ah,9
int 21h
mov dx,s9		
add dx,30h
mov ah,2
int 21h
mov dx,offset crlf
mov ah,9
int 21h
mov dx,offset n6;输出s10
mov ah,9
int 21h
mov dx,s10		
add dx,30h
mov ah,2
int 21h

输出的信息如下:
在这里插入图片描述

实验5 学生成绩名次表实验

实验目的

进一步熟悉排序方法。

实验原理

将0~100之间的10个成绩存入首址为1000H的单元中。1000H+i表示学号为i的学生成绩,编写程序能在2000H开始的区域排出名次表。2000H+i为学号i的学生的名次。
参考主程序:

在这里插入图片描述
程序SCAN:
在这里插入图片描述

实验仪器

1、微机一台。

实验步骤

1.参考流程图编写实验程序,进行调试。
2.记录实验结果。
3.写出标准实验报告。

实验要求

源程序如下:

CRLF         MACRO
MOV         AH, 02H
MOV         DL, 0DH
INT          21H
MOV         AH, 02H
MOV         DL, 0AH
INT          21H
ENDM
DATA        SEGMENT
res db 'The sorted result is:',0dh,0ah,'$'
STUNUM     EQU       10
MESS        DB        ' INPUT 10 STUDENTS SCORE: ',0DH,0AH,'$'
ERROR       DB        ' INPUT ERROR!',0DH,0AH,'$'ORG         1000H
SCORE       DB         10 DUP (?)ORG         2000H
SEQU        DB         10 DUP (?)
DATA        ENDS
STACK      SEGMENT
STA         DW         12 DUP (?)
TOP         DW         ?
STACK      ENDS
CODE       SEGMENT
ASSUME    CS:CODE,DS:DATA,ES:DATA,SS:STACK
START:      MOV       AX, DATAMOV        DS, AXMOV        ES, AXMOV        SP, TOP            ; 初始化MOV        AH, 09HMOV       DX, OFFSET MESSINT        21H                ; 显示提示信息MOV       SI, OFFSET SCORE  ; 成绩表首址MOV       CX, STUNUM       ; 学生数送CX      
UUU:    CALL      GETNUM           ; 读取键入数值送DXMOV       [SI], DL             ; 存入成绩表缓冲区INC        SI                  ; 指向下一单元LOOP      UUUMOV       CX, STUNUM       ; 学生数MOV       DI, OFFSET SEQU    ; 名次表首址mov dx,offset res;输出提示信息mov ah,9int 21h
VVV:    CALL      SCAN               ; 扫描子程序MOV       AL, STUNUM        ; 学生数SUB       AL, CLINC        AL                 ; 计算名次MOV       BX, DX MOV       [DI+BX], AL        ; 记DX学号对应名次LOOP      VVVMOV       CX, STUNUM       ; 学生数MOV       SI, OFFSET SEQU    ; 名次表首址
WWW: MOV       AL, [SI]CALL       DISP1CRLFINC        SILOOP      WWW              ; 显示排定的学生名次MOV       AX, 4C00HINT       21H
SCAN   PROC      NEAR             ; 子程序,每扫描一遍成绩表缓冲区, 找出其中成绩最高者由DX指针指示对应学生                                           之后将该成绩清除,以便下一次扫描                                  
PUSH   CX
MOV    CX, STUNUM             ;学生数
MOV    AL, 00H                  ;最低成绩
MOV    BX, OFFSET SCORE
MOV    SI, BX                    ;指向成绩表首址
CCC:     CMP     AL, [SI]
JAE     JJJ                        ;AL中的成绩不低于成绩表指针SI所指单元的成绩则转JJJMOV     AL, [SI]                   ;AL存放较高的成绩MOV    DX, SI SUB     DX, BX                    ;DX为对应学号
JJJ:        INC     SI                         ;指向下一单元LOOP    CCCADD     BX, DX
MOV    BYTE PTR[BX], 00H        ;本次扫描成绩最高者清0          POP     CXRET
SCAN       ENDP
DISP1       PROC     NEARPUSH     CXMOV      BL, ALMOV      DL, BLMOV      CL, 04ROL      DL, CLAND      DL, 0FHCALL     DISPLMOV      DL, BLAND      DL, 0FHCALL     DISPLPOP      CXRET
DISP1       ENDP
DISPL       PROC    NEARADD      DL, 30HCMP      DL, 3AHJB        DDDADD      DL, 27H
DDD:MOV      AH, 02HINT       21HRET
DISPL      ENDP                    
GETNUM   PROC    NEARPUSH      CXXOR       DX, DX
GGG:       MOV      AH, 01HINT        21HCMP       AL, 0DHJZ         PPPCMP       AL, 20HJZ         PPPSUB       AL, 30HJB         KKKCMP       AL, 0AHJB         GETSCMP       AL, 11HJB         KKKSUB       AL, 07HCMP       AL, 0FHJBE        GETSCMP       AL, 2AHJB         KKKCMP       AL, 2FHJA         KKKSUB       AL, 20H
GETS:   MOV     CL, 04SHL       DX, CLXOR       AH, AHADD       DX, AXJMP       GGG
KKK:     MOV      AH, 09HMOV      DX, OFFSET  ERRORINT       21H
PPP:    PUSH      DX POP       DXPOP       CXRET
GETNUM   ENDP                   
CODE      ENDS
END       START

执行结果:
在这里插入图片描述


http://chatgpt.dhexx.cn/article/A4A9KhxY.shtml

相关文章

C高级语言程序设计实验报告之选择结构程序设计

文章目录 实验目的题目代码题一题二题三题四 实验目的 1、了解C语言表示辑量的方法&#xff08;以0代表“假”&#xff0c;以非0代表“真”&#xff09; 2、学会正确使用遷辑运算符和遷辑表达式 3、熟掌握if语句的使用&#xff08;包括if语句的嵌套&#xff09; 4、熟掌握多分…

给你一份满分的程序设计报告(附源码)

ATM业务模拟系统功能要求 客户端&#xff1a; 定义用户数据对象&#xff0c;并以此为参数生成用户操作对象&#xff1b; 存款操作&#xff1a;生成一条新的业务信息&#xff08;业务对象&#xff09;&#xff0c;追加到交易记录中&#xff0c;并修改账号余额&#xff1b; 取款…

C++ 会议信息管理系统 程序设计报告

C 会议信息管理系统 C 会议信息管理系统 程序设计报告 会议记录管理系统 问题描述: 定义会议信息类class Conference 会议信息包括:会议编号&#xff0c;会议名称、部门名称、会议地点&#xff0c;会议日期&#xff0c;会议主会议记录人&#xff0c;出席人员&#xff0c;会…

Java高级程序设计课程设计报告

一、基于OBE模式的实验目的和要求 要求复习课件中理论知识&#xff1b;练习课堂所讲的例子&#xff1b;编写程序完成以下实验目标并上交实验报告&#xff08;包括电子文档与纸质文档&#xff09;。 能够根据Java集合框架&#xff0c;利用迭代方法编程实现对集合的遍历操作。能…

Java面向对象程序设计实验报告(实验三 继承的练习)

✨作者&#xff1a;命运之光 ✨ 专栏&#xff1a;Java面向对象程序设计实验报告 ​ 目录 ✨一、需求设计 ✨二、概要设计 ✨三、详细设计 ✨四、调试结果 ✨五、测试结果 ✨附录&#xff1a;源程序代码&#xff08;带注释&#xff09; demo3类 Person类 Student类 …

《程序设计基础课程设计》实验报告

《程序设计基础课程设计》实验报告 班 级&#xff1a; 学 号&#xff1a; 姓 名&#xff1a; 完成题目&#xff1a;1、2、3、4、5、6 概述 此次六道题目里面第四题是参考某博主的文章后实现的&#xff0c;有一些地方仍然不是特别理解&#xff0c;但是原文章里面存在一些小错…

Java面向对象程序设计实验报告(实验五 接口的练习)

✨作者&#xff1a;命运之光 ✨专栏&#xff1a;Java面向对象程序设计实验报告 ​ 目录 ✨一、需求设计 ✨二、概要设计 ✨三、详细设计 ✨四、调试结果 ✨五、测试结果 ✨附录&#xff1a;源程序代码&#xff08;带注释&#xff09; demo5类 Instrument类 Piano类 …

Python程序设计实验报告【合集】

课堂作业 1、词频统计&#xff1a;输入一个文件&#xff0c;程序读取文件&#xff0c;文件内容是英文内容&#xff0c;不少于500个单词的内容&#xff0c;统计每个单词在该短文内出现的次数。 https://www.jb51.net/article/144405.htm https://www.cnblogs.com/Eudemines/p/9…

Java面向对象程序设计实验报告(实验一 面向对象基础练习)

✨作者&#xff1a;命运之光 ✨ 专栏&#xff1a;Java面向对象程序设计实验报告 目录 ✨一、需求分析 ✨二、概要设计 ✨三、详细设计 ✨四、调试分析 ✨附录&#xff1a;源代码&#xff08;带注释&#xff09; 实验一 面向对象基础练习 实验环境&#xff1a;EclipseJDK …

《C语言程序设计》课程总结报告

《C语言程序设计》课程总结报告 一、我学到的内容 二、我的收获&#xff08;包括我完成的所有作业的链接收获&#xff09; 1.PTA作业 22年秋-第1周基础作业 https://pintia.cn/problem-sets/1575138141596397568 22年秋-第2周课后作业 https://pintia.cn/problem-sets/1…

(软件工程)-- 总体设计报告

1引言 1.1编写目的 本阶段完成系统的大致设计并说明系统的数据结构与软件结构&#xff0c;本概要设计说明书的目的就是进一步细化软件设计阶段得出的软件概貌&#xff0c;把它加工成程序细节上非常接近与源程序开发的软件标识。 预期读者&#xff1a;软件测试人员、程序开发员…

程序设计报告模板

一、问题及代码 /* * 文件名称&#xff1a;Ex1-1.cpp * 作 者&#xff1a;曾辉 * 完成日期&#xff1a;2015 年 1 月 1 日 * 版 本 号&#xff1a;v1.0 * 对任务及求解方法的描述部分: * 输入描述&#xff1a;无 * 问题描述&#xff1a;我的第一个C程序&#xff0c;熟…

C语言程序设计期末大作业—教师工资管理系统(附程序设计报告)

C语言大作业——教师工资管理系统 主要的难点在于文件读取 数据结构用的是链表 源码放上&#xff0c;直接粘贴复制就可以&#xff0c;我的C程大作业 具体的问题不懂的可以评论和私信&#xff0c;总之还是简单的 放张图片 程序设计报告可以私信我 #include<stdio.h> …

C语言程序设计 课程设计报告

C语言程序设计课程设计报告 一、 系统简介 学生成绩管理系统简介&#xff1a;一个简易的学生成绩管理系统&#xff0c;它包括并可以实现&#xff1a;“录入并保存学生信息、打印学生信息、读取学生信息、查找学生信息、删除学生信息、修改学生信息、排序学生信息、退出系统 ”…

程序设计基础实训报告

一、实训目的 程序设计基础是程序设计C语言和C语言的入门课程&#xff0c;该课程兼顾基础理论和编程实践。通过学习该课程的理论知识和编程实战&#xff0c;培养学生的专业实践技能&#xff0c;学校设有专用实训周&#xff0c;帮助学生全面牢固地掌握课堂教学内容、提升实际动手…

程序设计课程设计报告(学生成绩管理系统)

程序设计课程设计报告 课程设计题目及内容 题目&#xff1a;学生成绩管理系统 设计要求及提示如下&#xff1a; &#xff08;1&#xff09;、设计一个学生类Student,包括数据成员&#xff1a;姓名、学号、二门课程(面向对象程序设计、高等数学)的成绩。 &#xff08;2&…

如何在A4相纸上打印4张5寸相片

第一步&#xff0c;打开ps&#xff0c;点击文件-新建&#xff0c;新建一个空白文档&#xff0c;宽度设置为12.7cm&#xff0c;高度设置为8.9cm&#xff0c;分辨率设置为300&#xff0c;rgb颜色设置为8位。 如下图&#xff1a; 第二步&#xff0c;设置完点确定&#xff0c;然后…

PS照片排版1寸2寸等及照片规格

我的电脑是macOS&#xff0c;为了这个文章通用win的朋友&#xff0c;尽量少用快捷键&#xff0c;多截图&#xff0c;本文以1寸为例介绍&#xff1a; 1.打开PS&#xff0c;文件-打开-选择要打印的照片 2.点裁剪-选择宽/高/分辨率-输入高度-输入宽度-输入分辨率-确定 3. 点击图像…

自制1寸照片及打印排版

1、打开Photoshop,新建一个2.5*3.5cm的图层&#xff0c;分辨率为300的文件。如果是2寸的就新建一个3.5*5.3cm的图层。&#xff08;文件----新建&#xff09; 2、打开拍摄的照片&#xff0c;使用”拖动”工具将照片拖到之前新建的1寸照片中&#xff0c;照片拖进去之后原始尺寸肯…

计算机报名照片 1寸,国考录用系统2021国家公务员考试报名照片尺寸是1寸还是2寸?...

国考录用系统2021国家公务员考试报名照片尺寸是1寸还是2寸?由国家公务员考试网其他答疑栏目提供&#xff0c;更多关于国家公务员考试,国考报名确认,国考缴费入口,国考照片,国家公务员考试其他答疑的内容&#xff0c;请关注国家公务员考试网/河北人事考试网&#xff01; 2021年…