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

汇编语言的知识点总结

提问网友 发布时间:2022-04-23 14:20
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
1个回答
热心网友 回答时间:2023-05-07 09:16
;输出字符串函数 prompt proc mov ah, 09h int 21h ret prompt endp ;输出回车换行符函数 crlf proc mov dl, 0dh mov ah, 2 int 21h mov dl, 0ah mov ah, 2 int 21h ret crlf endp ;输出空格符函数 blank proc mov dl, 20h mov ah, 2 int 21h ret blank endp ;二进制的输入函数 ;输入范围0~1111111111111111 inb proc push cx inbstart: mov bx, 0 accept: mov ah, 1 int 21h cmp al, 0dh je inbexit cmp al, 30h jl inberr cmp al, 31h ja inberr sub al, 30h mov ah, 0 mov ax, bx mov cx, 2 mul cx add bx, ax jmp accept inbexit: pop cx ret inberr: lea dx, 'bad format...$' call prompt jmp inbstart inb endp ;八进制的输入函数 ;范围:0-177777 inq proc push cx pop cx ret inq endp ;十进制的输入函数 ;范围:0-65535 ind proc push cx indstart: mov bx, 0 accept: mov ah, 1 int 21h cmp al, 0dh je indexit cmp al, 30h jl inderr cmp al, 39h ja inderr sub al, 30h mov ah, 0 xchg ax, bx mov cx, 10 mul cx add bx, ax jmp accept indexit: pop cx ret inderr: mov dx, offset 'bad format...$' call prompt jmp indstart ind endp ;十六进制的输入函数 ;范围:0-0FFFFH inh proc push cx inhstart: mov bx, 0 accept: mov ah, 1 int 21h cmp al, 0dh je inhexit cmp al, 30h jl inherr cmp al, 66h ;'f' ja inherr cmp al, 39h ;'9' jl num cmp al, 41h ;'A' jl inherr cmp al, 46h ;'F' ja lowercase sub al, 7h ;'A'-':'=7h jmp num lowercase: cmp al, 61h ;'a' jl inherr cmp al, 66h ;'f' ja inherr sub al, 27h ;'a'-':'=27h num: and ax, 0fh xchg ax, bx mov cx, 16 ;mov cx, 4 mul cx ;shl ax add bx, ax jmp accept inhexit: pop cx ret inherr: lea dx, 'bad format...$' call prompt jmp inhstart inh endp ;二进制的输出函数 ;范围:0-1111111111111111 ;call: 要输出的数字放在bx中传入 outb proc push cx mov nozero, 0 ;like a boolean variable mov cl, 16 nextbit: mov dl, 0 test bx, 8000h je disp mov nozero, 1 mov dl, 1 disp: cmp nozero, 0 je continue add dl, 30h mov ah, 2 int 21h continue: shl bx, 1 loop nextbit cmp nozero, 0 jne outbexit mov dl, 30h ;output '0' because the number in bx is zero mov ah, 2 int 21h outbexit: pop cx ret outb endp ;八进制的输出函数 ;范围:0-177777 ;call: 要输出的数字放在bx中传入 ;十进制的输出函数 ;范围:0-65535 ;call: 要输出的数字放在bx中传入 outd proc push cx mov nozero, 0 ;like a boolean variable mov cx, 10000 call decdiv mov cx, 1000 call decdiv mov cx, 100 call decdiv mov cx, 10 call decdiv mov cx, 1 call decdiv cmp nozero, 0 jne outdexit mov dl, 30h mov ah, 2 int 21h outdexit: pop cx ret ;---sub proc--- ;call: 被除数在bx传入,除数在cx传入 ;ret: 打印商,余数送bx decdiv proc mov ax, bx mov dx, 0 div cx mov bx, dx mov dl, al cmp dl, 0 jne dispdigit cmp nozero, 0 jne dispdigit jmp decdivexit dispdigit: mov nozero, 1 add dl, 30h mov ah, 2 int 21h decdivexit: ret decdiv endp ;---sub proc--- outd endp ;十六进制的输出函数 ;范围:0-0FFFFH(或0-0ffffh) ;输出十六进制用大写字母(A-F表示) ;call: 要输出的数字放在bx中传入 outh proc push cx mov ch, 4 mov nozero, 0 ;like a boolean variable next4bits: mov cl, 4 rol bx, cl mov al, bl and al, 0fh cmp al, 10 jl dispdigit add al, 7h ;if disp 'a-f' ,should add 27h dispdigit: cmp al, 0 jne dispnozero cmp nozero, 0 je continue dispnozero: mov nozero, 1 add al, 30h mov dl, al mov ah, 2 int 21h continue: dec ch jnz next4bits cmp nozero, 0 jne outhexit mov dl, 30h mov ah, 2 int 21h outhexit: pop cx ret outh endp ;冒泡排序函数(降序)(sort in DW array<2 bytes>) bubble proc push cx mov cx, count ;NOTICE: count = nums.length-1 outloop: mov di, cx mov si, 0 inloop: mov ax, nums[si] cmp ax, nums[si+2] ;nums[si+1], if sort in 8 byte jae incontinue xchg ax, nums[si+2] ;nums[si+1], if sort in 8 byte xchg ax, nums[si] incontinue: add si, 2 ;add si, 1, if sort in 8 byte loop inloop mov cx, di loop outloop pop cx ret bubble endp ;查找最小ASCII码 ;call: 被查找ASCII串码放在buff中 ;ret: 找到的最小ASCII码将被放在minascii中返回 getmin proc push cx lea si, buff+2 mov cl, num+1 and cx, 0fh mov bl, [si] next: inc si cmp bl, [si] jle continue mov bl, [si] continue: loop next mov minascii, bl pop cx ret getmin endp ;统计非字符和非数字的个数 ;call: 被统计ASCII串码放在buff中 ;ret: 统计的数字将被放在sum中返回 count proc push cx mov cl, buff+1 lea si, buff+2 mov sum, 0 next: mov al, [si] cmp al, '0' ;30h jb yes cmp al, '9' ;39h jb no cmp al, 'A' ;41h jb yes cmp al, 'Z' ;5ah jb no cmp al, 'a' ;61h jb yes cmp al, 'z' ;7ah jb no jmp yes yes: inc byte ptr sum no: inc si loop next pop cx ret count endp

记得采纳啊

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

OPPO A11单手模式使用方法是什么? PCHM10能无线充电吗? PCHM10和SPN-ALOO哪个好? 深更半夜的手机屏上突然出现已成功升级至PcHM10_11_A.51手机安全吗? oppo型号是PCHM10手机的回扯键如何找到 在什么位置? PCHM10_11_A.43_4v90ab90是真机吗? OPPO型号PCHM10支持OTG吗? 型号PCHM10有NFC功能吗? pchm10不支持快充? oppoA11通过*#1234#查询版本号是PCHM10_11_A.16是不是翻身机呢? pchm10手机多少钱? pchm10是什么手机? 周末需要打印的作业:1,有关数学小故事或者数学趣味小知识(有图有文字,a4纸彩 Excel中如何将 星期六日 所在行字体变成其他颜色或者用其他颜色填充? 星期六的曰记50字 周末是指星期几? 有关周六周日的日记250字 星期六星期天随笔800字怎么写! 那个星期天思维导图? 星期一,星期二,星期三,星期四,星期五,星期六英语单词是什么 单片机汇编语言总结{越完整越好} 汇编语言学习心得 简述计算机程序设计语言(机器语言、汇编语言、高级语言)的优缺点。 汇编,C语言,java的区别,我是小白,请说的通俗易懂一点,谢谢。 有关高级语言和汇编语言的一些问题? 汇编语言(王爽)第二版各章内容总结(每章20多字),高分求 汇编语言(王爽)第二版各章内容总结(每章20多字),高分求 汇编语言通用性问题 汇编语言通用性问题 汇编语言 栈 汇编语言笔记 汇编语言(王爽)的实验5,第五问和第六问补全后,对全部代码逐行解析,以及分段进行分析总结 用爱剪辑怎么剪视频 在汇编语言中变量的名字代表什么? 在汇编语言中变量的名字代表什么? 以my.asm为例说明汇编语言上机过程. 以my.asm为例说明汇编语言上机过程. 请推荐汇编语言从入门到精通 都需要看什么书 给个学习路线图 我是自学没老师 请推荐汇编语言从入门到精通 都需要看什么书 给个学习路线图 我是自学没老师 关于汇编语言的,前辈帮忙总结一下哪些汇编语言的指令影响标志位并分析一下是怎么影响的
Top