微型计算机技术。
1. x=00ffh,y=5555h,求z=xy
解: x=0000 0000 1111 1111b
y=0101 0101 0101 0101b
0101 0101 1010 1010b
al,feh; alal and 1111 1110b;al最后一位清0;
1)al低4位清0
解:1111 0000 and al,f0h
2)al 中间4位清0
解:1100 0011 and al,c3h
3)bl第0,3,4,7位清0
解:0110 0110 and bl,66h
al,0h;alal or 0000 0001b;al最后一位置1
1)al低4为置1
解:0000 1111 or al,0fh
(2)al 中间4位置1
解:0011 1100 or al,3ch
(3)bl第0,3,4,7置1
解:1001 1001 or bl,99h
al,01h;alal xor 0000 0001b;al最后一位取反。
1)al低4位取反。
解:0000 1111 xor al,0fh
2)中间4位
解:0011 1100 xor bl,3ch
3) )bl第0,3,4,7位取反。
解:1001 1001 xor bl,99h
高2位清0,低2位置1,中间4位取反。
解:and al,3fh
or al,03h
xor al,3ch
6.机器字长8位,[-46]补码=?
46]补码=0010 1110取反 1101 0001末尾加11101 0010d2h
机器字长16位,[-46]补码=ffd2h
7.数据段中偏移地址为bx内容所对应的字内容取出送ax;
mov ax,[bx]
有效地址:ea=bx=1000h
物理地址:pa=ds x 16 +ea=12340h+1000h=13340h
执行结果是将物理地址为13340h和13341h所对应的字内容取出送ax;
8.数据段偏移地址为bx的对应的字节送cl;
mov cl,[bx]
ea=bx=1000h
pa=ds x 16 +ea=133401h
执行结果是将物理地址为13340h对应的字节送cl;
段中偏移地址为si所对应的字送ax;
mov ax,es:[si]
ea=si=3000h
pa=es x 16 +si=9abc0h + 3000h =9dbc0h;
执行结果是将物理地址为9dbc0h和9dbc1h所对应的字送ax;
内容送入附加段中偏移地址为di所对应的字节;
mov es:[di],ah
ea=di=4000h
pa=es x 16 + di =9abcoh +4000h=9ebc0h
执行结果是将ah内容送入物理地址为9ebc0h对应的字节中;
段中偏移地址为bp所对应的字送cx
mov cx,ss:[bp]
ea=bp=2000h
pa=ss x16 +ea=5670h+2000h=-58780h
物理地址 58780h,58781h.
内容送人堆栈段中偏移地址为bp所对应的字节。
mov ss:[bp],al
ea=bp=2000h
pa=ss x16+ea=58780h
执行结果是将al内容送入物理地址为58780h所对应字节内;
减法sub:
1. sub bl,03h blbl-03h
2.4个16位寄存器ax-bx-cx-dx结果放ax
sub ax,bx
sub ax,cx
sub ax,dx
3.79h-5ch
mov al,79h
sub al,5ch
4.移地址为2000h,2001h,2001h三单元内容相减差放入al;
mov al,[2000h]
sub al,[2001h]
sub al,[2002h]
结果放al;
sub al,ds:[1800h]
结果放在ds:[bx+di]
sub ds:[bx+di],si
7.数据段中偏移地址为bx内容与1200h之和所对应的字的内容取出送ax.
mov ax,[bx+1200]
ea=bx+1200h=2200h
pa=ds x 16 +ea=12340h+2200h=14540h
物理地址 14540h ,14541h
8.数据移位:sal al,1 al内容算术左移1位
mov cl,2
sal al,cl (al内容算术左移2位)
内容乘以3,结果仍放在al中。
mov bl,al
sal al,1
add al,bl
内容乘以5,结果放在al中。
mov bl,al
mov cl,2
sal al,cl
add al,bl
内容乘以10,结果放在al中。
sal al,1
mov bl,al
sal,al,1
sal al,1
add al,bl
内容乘以1.5,结果仍放在al中。
mov bl,al
sar al,1
add al,bl
内容乘以1.25,结果仍放在al中。
mov bl,al
mov cl,2
sar al,cl
add al,bl
值分别放在bufa,bufb单元中,求公式中z值,并将结果放在result单元中,运算结果假设不超过16位:z=(a+b) x 10 – 500
mov dx,bufa ;dx=a
add dx,bufb ;dx=a+b
mov bx,dxbx=dx=a+b
mov cl,3
sal dx,cldx=(a+b)*8
sal bx,1bx=(a+b)*2
add dx,bx ;dx=(a+b)*8+(a+b)*2
sub dx,500 ;dx=(a+b)*10 – 500
mov result,dx
mov ah,4ch
int 21h
15.立即数90h送人数据段中偏移地址为di内容与2500之和所对应的字节中。
mov byte ptr[di+2500h],90h
ea=di+2500h=6500h pa= ea+ds x 16 =18840h
17.立即数a0h送入数据段中偏移地址为di内容与2500h之和所对应的字中。
mov word ptr[di+2500h]
1. 已知xx,yy两个无符号16位数,求其中最大值,结果放在max单元中。
mov ax,xx
cmp ax,yy
ja next
mov ax,yy
next:mov max,ax
2. 已知xx、yy两个无符号16位数,求其中最小值,结果放在min中;
mov ax,xx
cmp ax,yy
jb next
mov ax,yy
next:mov min,ax
3. 已知xx,yy,zz三个无符号16位数,求其中最大值,结果放在max中;
mov ax,xx
cmp ax,yy
ja next
mov ax,yy
next:cmp ax,zz
ja gomax
mov ax,zz
gomax:
mov max,ax
三个最小值方法与上类似;
4. 已知字节变量char,判断它是否为大写字母,如果是则显示该字符,否则退出。
mov dl,char
cmp dl ‘z’
ja quit
cmp dl,’a’
jb quit
mov ah,02h
int 21h
quit:mov ah,4ch
int 21h
判断是否是小写字母方法类似。
5. 从键盘上读入字符,判断它是否为数字,如果是则显示该字符,否则退出;
mov ah,01h
int 21h
cmp al,’9’
ja quit
cmp al,’0’
jb quit
mov dl,al
mov ah,02h
int 21h
quit:mov ah,4ch
int 21h
6. 设y为符号数,写出其分支程序。
1 (x>0)
y= 0 (x=0)
-1 (x<0)
mov al,aa
cmp,al,0
jge bigr
mov al,-1
jmp stop
bigr:jg next1
mov al,0
jmp stop
next1:
mov al,1
stop:mov bb,al
mov ah,4ch
int 21h
循环结构。1. 编写程序计算c=1+2+10
mov cx,10
mov bx,0
mov ax,0
lop:inc bx
add ax,bx
loop lop
2. c=2+4+6++100
mov cx,50
mov bx,0
mov ax,0
lop:inc bx
inc bx
add ax,bx
loop lop
3. c=10+9++1
mov cx,10
mov bx,11
mov ax,0
lop:dec bx
add ax,bx
loop lop
4. c=100+99++2
mov cx,50mov cx,50
mov bx,102mov bx,100
mov ax,0mov ax,0
lopor lop:
dec bxadd ax,bx
dec bxdec bx
add ax,bxdec bx
loop loploop lop
微机笔记整理
微型计算机技术。1.x 00ffh,y 5555h,求z xy 解 x 0000 0000 1111 1111b y 0101 0101 0101 0101b 0101 0101 1010 1010b al,feh alal and 1111 1110b al最后一位清0 1 al低4位清0 解 1...
微机复习笔记
第六章。cpu与外设通信时,传递的信息主要包括数据信息 状态信息和控制信息。i o端口的编制方式,分别是存储器映像寻址方式和i o指令寻址方式。若把系统中的每一个i o端口都看作一个储存单元,并与存储单元一样统一编址,这样访问存储器的所有指令均可以访问i o端口,不用设置专门的i o指令,这种寻址方...
微机编程实验答案整理
1 可编程定时器计数器8253 一 ioport equ 0d400h 0280h io8253a equ ioport 283h io8253b equ ioport 280h code segment assume cs code start mov al,14h 设置8253通道0为工作方式2...