作业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 第二题...