微机原理作业

发布 2022-09-04 20:39:28 阅读 6410

作业8:

第三章习题 p122

13(1)~(5)并说明每条指令的寻址方式。

其中(4)的正确格式为:

jmp far ptr prog_f

后面两问不做。

作业8参***:

extra segment ;附加段。

get_char db 26 dup (?

extra ends

code segment ;**段。

assume cs:code, ds:data, es:extra;段分配。

start: mov ax, data ;初始化ds

mov ds, ax

mov ax, extra ;初始化es

mov es,ax

lea si,string

lea di,get_char

mov cx,26

cldrep movsb

mov ah,4ch ;返回dos

int 21h

code ends

end start ;源程序结束。

code segment ;**段。

assume cs:code, ds:data, es:data;段分配。

start: mov ax, data ;初始化ds和es

mov ds, ax

mov es,ax

lea di,string

lea al,‘&待搜索字符。

mov cx,26

cldcont: repne scasb ;目的串es:di

jnz final ;搜索结束,转final

mov byte ptr [di-1],‘ds:di

jmp cont ;继续搜索。

final: mov ah,4ch ;返回dos

int 21h

code ends

end start ;源程序结束。

作业9:第三章习题 p122~p123

作业9参***:

mov bx,0 ;统计寄存器清0

mov cx,16 ;循环次数。

next: rol ax,1 ;循环左移1位。

jnc goon ;cf=0,转goon

inc bx ;cf=1,统计累加1

goon: rcr dx,1 ;带cf循环右移1位。

loop next ;循环控制。

hlt ;停机。

作业10:第三章习题 p123

第四章习题 p199

作业10参***:

第三章18:

1)0040h÷4=10h(或16号中断)

2)d169:240bh(或d3a98h)

第四章5:ax=1, bx=20, cx=1

将外设端口地址为5fh的内容读入al

若该内容的最高位为0,ah=ffh;

若该内容的最高位为1,ah=0

作业11:第四章习题 p198

作业11参***:

1:a1占4b

a2占6ba3占40b(4×5×2)

a4占60b(1×4×3×5)

3:l=6 即变量buf占用的内存字节数。

作业12:第四章习题 p198

补充题1:以下的语句有数据0503h的字单元有多少个?0305h的字单元又有多少个?画图示出求解过程。

var1 db 25h dup (3,3 dup (5))

补充题2:(阅读程序,写结果)

执行下列指令段后,ax、bx寄存器的内容是什么?

org 2000h

var dw 2

tab1 db 10h,20h,30h,40h,50h,60h

result dw

mov bx, offset tab1

add bx, var

mov ax, [bx]

补充题3(编程):利用中断调用,编写程序在屏幕上顺序显示26个大写英文字母a~z,光标回车换行。

作业12参***:

第四章习题4:plenth=2+16+4=22(或16h)

表示par、pname、count三个变量总共占用的内存字节数。

补充题1:数据0503h的字单元有25h个。

数据0305h的字单元有24h个。

补充题2:bx=2004h ax=4030h

补充题3:方法①:采用9号功能调用(显示字符串)

data segment

str db ‘abcdefghijklmnopqrstuvwxyz’,0dh,0ah,‘$

data ends

code segment

assume cs:code,ds:data

start:mov ax,data

mov ds,ax

lea dx,str (或mov dx,offset str)

mov ah,9

int 21h

mov ah,4ch

int 21h

code ends

end start

方法①:采用2号功能调用(显示单字符)

code segment

assume cs:code

start:mov cx,26 ;循环显示26个大写字母。

mov dl,41h(或‘a’)

next: mov ah,2

int 21h

inc dl

loop next

mov dl,0dh ;显示回车换行。

mov ah,2

int 21h

mov dl,0ah

mov ah,2

int 21h

mov ah,4ch

int 21h

code ends

end start

作业13:补充题1:(阅读程序,写结果)

str db ‘abcdef0123456789’

mov bx ,offset str

mov al ,65h

push ax

and al ,0fh

xlat mov dl,al

pop ax

add al,08h

daa mov dh,al

cmp dh,32h

执行上面程序段后,(dl)=46h?,(dh)=73h?

补充题2(编程):查找某门课学生考试最高成绩及并列人数。

设学生人数50人,成绩存放在内存tab开始的表中,最高。

成绩存入max单元,并列人数存入num单元。

data segment

data ends

code segment

assume cs:code,ds:data

start:mov ax,data

mov ds,ax

mov ah,4ch

int 21h

code ends

end start

补充题3:已知程序段:

mov ax,x

mov bx,y

test ax,bx

js aatest ax,8000h

js bbmov cx,0

jmp rr

bb: mov cx,1

jmp rr

aa: mov cx,offffh

rr: mov z,cx

1)若存储单元x的内容为40f4h,y为d300h,程序执行后z为多少?

2)若x为879ch,y为cfffh,z为多少?

3)若x为0300h,y为6fffh,z为多少?

补充题4:已知程序段:

mov ax,13h

mov cx,10h

mov dx,01h

xor bx,bx

l1: test ax,dx

jz l2inc bx

l2: shl dx,1

loop l1

求该程序执行后bx的值。该段程序的功能是什么?

作业14:补充题1:(程序填空)

下面子程序段的功能是将数据段中存于buf开始的单元中一32位数循环左移一位,其结果存于rslt单元。试在空白处填上适当的内容以保证程序的正确性。

xhzy proc far

push ax

push dx

mov ax,buf

mov dx,buf+2

shl ax, (1)

rcl dx, (2)

mov rslt,ax

mov (4)

retxhzy endp

补充题2(编程):已知程序段:

subp proc

push bp

mov bp,sp

push cx

微机原理作业

微型计算机原理及应用 作业。作业组别 十八。班级 机电一班姓名 学号 作业指导教师 任课教师 实验室教师 作业完成时间 2013年4月17日。目录。1题目一31 1题目分析31.2寄存器的应用说明31.3程序框图31.4详细程序41.5程序调试的情况42题目二42.1题目分析52.2寄存器及主存等的...

微机原理作业

微型计算机原理及应用 作业。作业组别 第30组。班级 12级轧钢二班。姓名 贾闯 学号 120101020023 指导教师 李艳文 完成时间 2015年 05 月。一 题目及题目分析描述及要求。题目 内存中source处存放着10个字节型数据,请记录每个字节数据中二进制位1的个数,并按照数据字节在前...

微机原理作业

微型计算机原理及应用 作业。作业组别 第十一组。班级 10级机控一班。姓名 孙策。学号 100107010140 作业指导教师 李艳文 作业完成时间 2013年4月9日。目录。第一题 1 一 题目分析 1 二 寄存器及主存应用说明 1 三 程序框图 1 四 详细程序 1 五 程序调试情况 2 第二题...