4.9现有符号定义语句如下:
buf db 3, 23, 44, 2, 90
buf2 dw 23, 78
leng equ buf2-buf
则leng表示什么意思,值是多少?如果buf用dw定义,leng值又是多少?
答:字节的长度,10, 如果buf用dw定义,leng值是7
4.11设bx=1103h,则执行下列指令后ax和cx各为多少?若bx=03h,则结果又如何?
mov ax, bx and 0ffh
mov cx, bx eq 1103h
答1)bx=1103h
mov ax,bx and 0ffh ax=0003h
mov cx,bx eq 1103 cx=0ffffh
2)bx=03h
mov ax,bx and 0ffh ax=0003h
mov cx,bx eq 1103h cx=0000h
4.12编写编程段计算下面表达式的值(各变量均为字节变量):
z=((x-y)/10+w)×4
答 mov al,x
sub al,y
cbw mov bl,10
div bl
add al,w
mov bl,4
mul al,bl
mov z,ax
4.14下面程序段是实现从键盘输入10个一位十进数后累加。最后累加和以非压缩bcd码形式存放在ah(高位)和al(低位)中。试把程序段中所空缺的指令填上。
xor bx, bx
mov cx,10
lop: mov ah, 01h; 键盘字符输入。
int 21h
and al,0fh
mov dl, al
mov ax, bx
aaamov bx, ax
loop lop
hlt4.17设a,b是长度为20的字节数组,用串操作指令编写程序实现a,b两组数据的相互交换,试完善本程序。
data segment
a db“abcdefghijklmnopqr”
org 14h
b db1,2,3,4,5,6,7,8,9,0ah,0bh
data ends
lea si,a
lea di,b
mov cx,10
lop1:mov ax,[si]
xchc ax,[di]
mov [si],ax
add di,2
add si,2
loop lop1
hlt4.18将内存中某数据块的正数和负数分开,并分别将这些正数和负数送同一数据段的两个缓冲区中,并在屏幕上显示正数和负数的个数。
答data segment
buf db原数据串。
n = buf
plus db n dup存放正数。
negt db n dup存放负数。
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
lea si,buf
lea di,plus
lea bx,negt
mov cx,n
lop: mov al,[si]
inc si
cmp al,0
ja pos
mov [bx],al
inc bx
jmp again
pos: mov [di],al
inc di
again:loop lop
sub bx,offset negt
mov dx,bx
or dl,'0'
mov ah,2
int 21h
sub di,offset plus
mov dx,di
or dl,'0'
mov ah,2
int 21h
mov ah,4ch
int 21h
4.20有子程序定义如下:
sub1 proc
test al, 80h
je plus
test bl, 80h
jne exit0
jmp change
plus: test bl, 80h
je exit0
change:xchg al, bl
exit: ret
sub1 endp
1) 子程序是的功能是什么?
答:当al>0且bl>0时,执行exit0
当al<0且bl<0时,执行exit0
当al>0且bl<0时,执行change
当al<0且bl>0时,执行change
由以上组合归纳可得,当al,bl中的数符号相同时它们各自保持不变,当al,bl中的数异号时交换al,bl中的数据。
2) 如调用子程序前al=88h,bl=97h,那么返回主程序时,al和bl各等于多少?
答由子程序功能可知当al=88h,bl=97h时,al最高位为1,bl最高位为1,均为负数,因此,它们将保持不变。即执行完成后al=88h,bl=97h
4.21 dos中断调用起什么作用?dos中断调用和bios中断调用使用上有什么区别?
答:dos是pc机上最重要的操作系统,它和bios一样包括有近百个设备管理、目录管理和文件管理程序,是一个功能齐全、使用方便的中断例行程序的集合。使用dos操作比使用相应功能的bios操作更简易,而且对硬件的依赖性更少些。
4.24从first开始存放着100个字符的字符串,结束符为“$”编写程序统计该字符串中字母“b”的个数。
mov ax,data;给数据段赋值。
mov ds,ax
lea si,str1;字符串首地址。
mov bl,0;存放统计个数的寄存器赋初值。
loop1:
mov cl,[si];取数据。
inc si
cmp cl,'$看是否是结尾。
je exit ;是,退出。
cmp cl,'a' ;不是结尾,比较是否是‘a’
jne next ;不是'a'比较下一个。
inc bl ;是,统计数加1
next: jmp loop1
exit: mov number,bl;将统计数送往存储区。
mov ah,4ch
int 21h
code ends
end start
微机课后作业
习题一。一 复习题。1.微型计算机控制系统的硬件由哪几部分组成?各部分的作用是什么?2.微型计算机控制系统的软件有什么作用?请说出各部分软件的作用。4.操作指导 ddc和scc系统工作原理如何?它们之间有何区别和联系?9.未来控制系统发展趋势是什么?12.什么是物联网?为什么说 物联网给微型计算机控...
微机课后作业 6
1.1什么是微型计算机系统,它与微型计算机之间的区别是什么?答 是指微型计算机在配以相应的外围设备,以及电源 机箱等硬件基础上,安装必要的软。件构成的系统,这个系统应具有数据处理 数据存取 数据运输等基本功能。区别 微型计算机好比硬件 裸机 不需要外来设备来展现它的存在,而微型计算机系统。相当于软件...
微机五年级课后作业
完成下面的任务,电脑会送给你精美的礼物!1 打开word,单击 插入 菜单栏的 菜单,单击子菜单中的 艺术字 2 在 艺术字 库 对话框中,选择你喜欢的式样,单击 确定 按纽。3 在弹出的 编辑 艺术字 文字 栏中,输入你的 名字 4 选择好 字体 和 字号 单击 确定 按纽,就能得到电脑送给你的精...