问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

用汇编语言编写对成绩等级的判断

提问网友 发布时间:2022-04-23 14:20
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
1个回答
热心网友 回答时间:2023-05-11 00:56
dat
segment
data
db
10
p(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,[si]
;取数据
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
[si],dl
mov
dl,0
inc
si
ret
buf
endp
cod
ends
end
start
;总结:这段程序实现的功能
;1.
十六进制输入一个数,输入回车表示输入结束,输入'*'表示退出程序,保存到寄存器中
;2.
十六进制数转换为十进制无符号数,使用了类似于栈的操作的方法
;3.
十进制无符号数转换为对应字符的ASCII码(2和3由子程序buf完成)
;4.
ASCII码对应字符的输出的功能
请参考

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

梦见锅底下的火非常红旺是什么意思? 学习汇编语言有没有用啊? 现在还有人用汇编语言?最流行的是什么 我查账单怎么查? 汇编语言的逻辑运算中异或怎么算,能不能给个例子 微机原理与汇编语言的学习心得 关于汇编语言的,前辈帮忙总结一下哪些汇编语言的指令影响标志位并分析一下是怎么影响的 关于汇编语言的,前辈帮忙总结一下哪些汇编语言的指令影响标志位并分析一下是怎么影响的 请推荐汇编语言从入门到精通 都需要看什么书 给个学习路线图 我是自学没老师 请推荐汇编语言从入门到精通 都需要看什么书 给个学习路线图 我是自学没老师 以my.asm为例说明汇编语言上机过程. 以my.asm为例说明汇编语言上机过程. 在汇编语言中变量的名字代表什么? 在汇编语言中变量的名字代表什么? 用爱剪辑怎么剪视频 汇编语言(王爽)的实验5,第五问和第六问补全后,对全部代码逐行解析,以及分段进行分析总结 汇编语言笔记 汇编语言 栈 汇编语言通用性问题 汇编语言通用性问题 梦见炒菜锅着火了怎么也扑不灭? 用8086汇编语言输出hello world的程序 梦见用锅炒菜,锅里着火了是什么预兆? 我有必要学汇编语言吗 汇编语言里的进栈 出栈 梦见锅底下的火填柴火,火哄下子好大? 昨晚梦见同事翻是非被打啥意思? 梦见同事翻是非被打啥意思? 折叠屏手机到底好不好用呢? 梦见女同事被打和自己杀人? 梦见一个同事被打我很难过,一直在哭 折叠屏手机是否能完全代替现阶段的智能手机呢? 梦见我同事被打啦 她是女的 梦见同事被家里那边混混打了有什么寓意 OPPO也有了首款折叠屏手机,折叠屏手机究竟有哪些好处呢? 梦见我上班,同事被人打的血流一地是啥梦? 折叠屏手机似乎有爆发之势,大家觉得有哪些优缺点呢? 梦到同事被打的鼻青脸肿 梦到同事翻是非被打什么预兆? 两阳夹一阴的k线,到底说明了什么问题?
Top