微机原理 程序设计题

数字0~9、A~Z、a~z

DATA SEGMENTINFOR1 DB 0AH, 0DH, "Please Press Any Key to input a letter :$"INFOR2 DB 0AH, 0DH, "You Input a Lowercase Letter! $"INFOR3 DB  0AH, 0DH, "You Input a Uppercase Letter! $"INFOR4 DB  0AH, 0DH, "You Input a Digit! $"INFOR5 DB  0AH, 0DH, "You Input Other Letter! $"DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX, DATAMOV DS, AXMOV DX, OFFSET INFOR1 ;显示信息MOV AH, 09HINT 21HMOV AH, 01H             ;功能号为1的DOS功能调用实现从键盘输入一个字符INT 21HCMP AL,'0'JB OTHERCMP AL,'9'JB DIGITCMP AL,'A'JB OTHERCMP AL,'Z'JBE UPPERCMP AL,'a'JB OTHERCMP AL,'z'JBE LOWERJMP PENDLOWER: MOV DX, OFFSET INFOR2MOV AH, 09HINT 21HJMP PENDUPPER: MOV DX, OFFSET INFOR3MOV AH, 09HINT 21HJMP PENDDIGIT: MOV DX, OFFSET INFOR4MOV AH, 09HINT 21HJMP PENDOTHER: MOV DX, OFFSET INFOR5MOV AH, 09HINT 21HJMP PENDPEND: MOV AH,4CHINT 21HCODE ENDSEND START

字母大小写转换

 例4.14一个数据块由大写或小写的英文字母、数字和各种其他符号组成,其结束符是回车符CR(ASCII码为0DH),数据块的首地址为BLOCK1.将数据块传送到BLOCK2为首地址的内存区,并将其中所用的英文字母(a~z)转换成相应的大写字母(A~Z),其余不变

小写字母61H~7BH

LEA SI,BLOCK1
LEA DI,BLOCK2
CLD
NEXT:
LODSB
CMP AL.0DH           ;是否是回车符
JZ DONE
CMP AL,61H           ;是都小于'a'
JC OK
CMP AL,7BH           ;是否大于'z'
JNC OK               ;是,跳转Ok
SUB AL,20H           ;否则,AL减20
OK:
STOSB
JMP NEXT
DONE:
HLT

字符串传送、比较

 例4.15比较两个字符串,找出其中第一个不相等字符的地址。如果两个字符全部相同,则转到ALMATCH进行处理。这两个字符串长度均为20,首地址分别为STRING1何STRING2

LEA SI,STRING1
LEA DI,STRING2
MOV CX,20
CLD
REPE CMPCB
JZ ALLMATCH
DEC SI
DEC SI
HLT
ALLMATCH:
MOV SI,0
MOV DI,0
HLT

最大值、最小值

从内存数据段的xx单元开始连续存放有10个字节型无符号数,要求从中找出最大者送入yy单元中

已知内存SCORE单元中存有10个学生的考试成绩,分别为53,49,67,91,85,83,74,69,95,86。试编写程序,将最低分存入MIN单元内

DATA SEGMENTxx DB 73,59,45,81,107,37,25,14,64yy DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV BX,OFFSET XXMOV AL,[BX]MOV CL,9AGAIN:INC BXCMP AL,[BX]JA NEXTMOV AL,[BX]NEXT:LOOP AGAINMOV yy,ALMOV AH,4CHINT 21HEND CODEEND START

以DATA1为首地址的内存数据段存放了10个16位带符号数,将其中最大值和最小值找出,并分别存入MAX和MIN

data segment
data1 dw 356,-124,9,12,-43,-88,67,42,99,-20
max dw 0
miu dw 0
endsstack segment
dw   128  dup(0)
endscode segment
start:mov ax, data
mov ds, ax
mov es, axlea si,data1
mov cx,9
cld
lodsw
mov max,ax
mov miu,ax
next:
lodsw
cmp ax,max
jg greater
cmp ax,miu
jl less
jmp goon
greater:
mov max,ax
jmp goon
less:
mov miu,ax
goon:
loop next
hltmov ax, 4c00h 
int 21h
endsend start 

 在数据段从MYDATA开始的存储单元中分别存放了两个8位无符号数,试比较它们的大小,并将大者传送到MAX单元

data segment
mydata db 23h,89h
max db 10 dup(0)
endsstack segment
dw   128  dup(0)
endscode segment
start:
mov ax, data
mov ds, ax
mov es, axlea bx, mydata
mov al, [bx]
inc bx
cmp al,[bx]
jnc done
mov al,[bx]
done:   mov max,al
hltmov ax, 4c00h 
int 21h
endsend start 

求和

 例4.4计算两个多字节十六进制数之和:3B74AC0F8H+20D59E36C1H=?

被加数和加数均有5个字节,利用循环

MOV CX,5
MOV SI,0
CLC
LOOPER:
MOV AL,DATA2[SI]
ADC DATA1[SI],AL
INC SI
DEC CX
JNZ LOOPER
HLT

累加和

从偏移地址为TABLE开始的内存单元中,存放着100个字节型数据

LEA BX,TABLE
MOV CL,100
XOR AX,AX
LOOPER:
ADD AL,[BX]
JNC GOON
INC AH
GOON:
INC BX
DEC CL
JNZ LOOPER
MOV SUM,AH
HLT

统计字符个数

如果要取出的指令位于物理地址389F2H且CS=2700H,请问代码段范围是否能覆盖到该指令?如果不能,在IP的取指必须是1282的情况下,应该给CS赋什么数值?

不能

3777H

求变量data1中“1”的个数,并置入count中

data segment
data1 db 00040h,0046h
data2 db 0075h,0038h
sum db 2dup(0)
endsstack segment
dw   128  dup(0)
endscode segment
start:
mov ax, data
mov ds, ax
mov es, ax; add your code here
lea si,data1
lea bx,data2
lea di,sum
mov cx,4
clc
next:   mov al,[si]
adc al,[bx]
aaa
mov [di],al
inc si
inc bx
inc di
dec cx
jnz next
hltmov ax, 4c00h 
int 21h
endsend start

如果CS=1296H,IP=100H

(1)逻辑地址

(2)物理地址

(3)代码段的上限和下限

1296H

12960H

上限12A60H

下限12A6FH

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/40472.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

100个名人的家,娄艺潇的家:大美国色,浪漫栖居

冠珠瓷砖「100个名人的家」,大美筑家,中国冠珠2024大美筑家之旅,冠珠瓷砖「100个名人的家」,探索中国人的烟火浪漫与美学追求。从中国家文化、人文居所、人生底蕴层面,发掘大美人居的故事,以中国瓷砖、空间…

ll命令在ubuntu下不能使用的解决方案

ll命令在ubuntu下不能使用的解决方案 问题: ll命令在ubuntu下不能使用, 在Ubuntu终端里执行ll,提示:command not found 解决方案: 打开当前用户目录下的.bashrc文件 找到下面的内容,将前面的“#”去掉 #alias llls -alF 然…

《vue3》reactivity API(vue3的$set呢?)

在Vue2中&#xff0c;修改某一些数据&#xff0c;视图是不能及时重新渲染的。 比如数组 <div> {{ myHobbies }} </div>data: () > ({myHobbies: [篮球, 羽毛球, 桌球] }); mounted () {this.myHobbies[1] sing; // 视图层并没有改变 }因此&#xff0c;Vue2就提…

代码随想录算法训练营第四十三天| 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II、 123.买卖股票的最佳时机III

121. 买卖股票的最佳时机 题目链接&#xff1a;121. 买卖股票的最佳时机 文档讲解&#xff1a;代码随想录 状态&#xff1a;做出来了 贪心思路&#xff1a; 因为股票就买卖一次&#xff0c;那么贪心的想法很自然就是取最左最小值&#xff0c;取最右最大值&#xff0c;那么得到的…

Nuxt3 的生命周期和钩子函数(十)

title: Nuxt3 的生命周期和钩子函数&#xff08;十&#xff09; date: 2024/6/30 updated: 2024/6/30 author: cmdragon excerpt: 摘要&#xff1a;本文详细介绍了Nuxt3框架中的五个webpack钩子函数&#xff1a;webpack:configResolved用于在webpack配置解析后读取和修改配置…

【C语言】break 关键字

当在C语言中使用break关键字时&#xff0c;它通常用于两种主要情况&#xff1a;在循环中和在switch语句中。让我们详细看看每种情况下的用法和作用。 在循环中的使用&#xff1a; 在循环中&#xff0c;break语句的作用是立即终止当前所在的循环&#xff0c;然后跳出循环体执行…

UE插件与云渲染:10个提升效率的选择

Unreal Engine&#xff08;虚幻引擎&#xff09;的插件生态丰富多样&#xff0c;从提升视觉效果到优化工作流程&#xff0c;为开发者提供了无限扩展的可能。本文推荐10款备受欢迎的插件&#xff0c;助你激发创意&#xff0c;提升开发效率. 一、地牢建筑师&#xff1a;程序化关…

EDUSRC-我与xx职院的爱恨情仇(教育漏洞挖掘)

一、人生中的第一个漏洞 2024.1月的时候&#xff0c;当时看朋友挖到了一个名校的漏洞&#xff0c;特别羡慕&#xff0c;我也想挖&#xff0c;但是当时什么都不会&#xff0c;就只好在网上搜edusrc挖掘思路、edusrc挖掘教程等等&#xff0c;边学边挖&#xff0c;边挖边学。 一开…

【数据结构】04.单链表

一、链表的概念及结构 概念&#xff1a;链表是⼀种物理存储结构上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 节点的组成主要有两个部分&#xff1a;当前节点要保存的数据和保存下⼀个节点的地址&#xff08;指针变量&#…

nginx重定向

nginx的重定向 location 匹配 location 匹配的就是后面的URI /wordpress location 匹配的分类和优先级** 1、精确匹配 location / 对字符串进行完全匹配&#xff0c;必须完全符合 2、正则匹配 ^~ 前缀匹配&#xff0c; 以什么开头 -区分大小写的匹配 ~*不区分大小写 …

数字化精益生产系统--MES制造管理系统

MES制造管理系统&#xff08;Manufacturing Execution System&#xff09;是现代制造企业中至关重要的管理工具&#xff0c;它集合了软件与多种硬件设备&#xff0c;形成了一个综合智能化系统&#xff0c;对从原材料上线到成品入库的整个生产过程进行实时数据采集、控制和监控。…

java 基础之 反射技术_java 程序src阶段 class对象阶段 run阶段3个阶段

System.out.println(in); } publicClass[] aa1(String name, int[] password){ returnnew Class[]{String.class} ; } privatestatic void aa1(int num){ System.out.println(num“静态方法”); } public static void main(String[] args){ System.out.println(“main”…

香港即将“放松”加密货币监管!加密牌照制度备受批评!全球主力军无法进入香港市场?动摇了香港Web3的信心!

2024年7月3日&#xff0c;香港金融服务及库务局局长许正宇在立法会会议上表示&#xff0c;香港金融管理局(HKMA)和证券及期货事务监察委员会(SFC)将根据市场发展情况&#xff0c;适时检讨虚拟资产相关活动的监管要求。 这一表态引发了人们对香港加密货币监管框架可能进行调整的…

超详细的 C++中的封装继承和多态的知识总结<1.封装与继承>

引言 小伙伴们都知道C面向对象难&#xff0c;可是大家都知道&#xff0c;这个才是C和C的真正区别的地方&#xff0c;也是C深受所有大厂喜爱的原因&#xff0c;它的原理更接近底层&#xff0c;它的逻辑更好&#xff0c;但是学习难度高&#xff0c;大家一定要坚持下来呀&#xff…

起飞,纯本地实时语音转文字!

简介 偶然在 github 上翻到了这个项目 https://github.com/k2-fsa/sherpa-ncnn 在没有互联网连接的情况下使用带有 ncnn 的下一代 Kaldi 进行实时语音识别。支持 iOS、Android、Raspberry Pi、VisionFive2、LicheePi4A等。 也就是说语音转文字可以不再借助网络服务的接口&am…

mac显示隐藏的.git文件

打开终端 输入命令 defaults write com.apple.finder AppleShowAllFiles YES killall Finder

Python代码设置Excel工作表背景色或背景图

Excel是工作中数据处理和分析数据的重要工具。面对海量的数据和复杂的表格&#xff0c;如何提高工作效率、减少视觉疲劳并提升数据的可读性是不容忽视的问题。而给工作表设置合适的背景是表格优化的一个有效方式。为Excel工作表设置背景色或背景图不仅能够美化工作表&#xff0…

25.labview数据采集中的读取和写入文本文件和Excel表格文件

①本文将会讲解labview读取和写入文本文件和Excel文件的几种不同方式&#xff0c;讲解程序的基本原理&#xff0c;并提出具体的实施方案&#xff0c;本文内容如下所示。 ②本文文章结束会提供大家 文本和表格读取写入的源程序 &#xff0c;以便于大家学习和使用。 本文中可能用…

TYPE-C转DC转接头方案,ECP5701支持5V、9V、12V、15V、20V电压输出

如今随着这几年的USB-C PD适配器的普及&#xff0c;消费者手上的PD适配器越来越普遍&#xff0c;如何让以前的电源适配器也可以用上PD适配器呢&#xff1f;如此一来以前的电源适配器坏了&#xff0c;就不需要费心费力的寻找相同的适配器进行更换&#xff0c;甚至于只能将整个设…

Xilinx FPGA:vivado关于单端ROM的一个只读小实验

一、实验要求 将生成好的voe文件里的数据使用rom读取出来&#xff0c;采用串口工具发送给电脑&#xff08;当按键来临时&#xff09;。 二、程序设计 按键消抖模块&#xff1a; timescale 1ns / 1ps module key_debounce(input sys_clk ,input rst_n…