3.2分别写出与数据有关的7种寻址方式并举例说明。
1)立即寻址 mov ax,3
2)寄存器寻址 mov ax,bx
3)寄存器间接寻址 mov [bx],ax
4)直接寻址 mov [0000],ax或mov al,value
5)寄存器相对寻址, mov table[bx],’a’
6)基址变址寻址,mov ax,[bx+si]
7)相对基址变址寻址,mov ax, value[bx][si]
3.3已知(bx)=1290h,(si)=348ah,(di)=2976h,(bp)=6756h,(ds)=2e92h,(es)=4d82h,(ss)=2030h,请指出下列指令的寻址方式,并求出有效地址ea和物理地址:
mov ax,bx寄存器寻址,没有内存地址。
mov ax,1290h 立即数寻址,数据在指令里。
mov ax,[bx寄存器间接寻址,ea=1290h,addr=2e920h+1290h=2fbb0h
mov ax,ds:[1290h] 直接寻址,ea=1290h,addr=2e920h+1290h=2fbb0h
mov ax,[bp寄存器间接寻址,ea=6756h,addr=20300h+6756h=26a56h
mov [di][bx],ax 基址变址寻址,ea=1290h+2976h=3c06h,addr=2e920h+3c06h=32526h
mov es:[si],ax 寄存器间接寻址,ea=348ah,addr=50caah
3.7 请指出下列指令的错误:
mov ax,[cxcx不能用作间址寄存器。
mov al,1200h 操作数的宽度不同,al8位,1200h是16位。
mov al,bx操作数属性不同,8位和16位。
mov [si][di],ax 不能用两个变址寄存器间址。
mov es:[dx],cx dx不是间址寄存器。
mov [ax],value ax不是间址寄存器,并且mov不能内存到内存。
mov count,[si] 不能内存到内存数据传送,或两个操作数不能都是存储单元。
3.8 根据题目要求,写出相应的汇编指令:
1) 把bx寄存器的值传送给ax mov ax,bx
2) 将立即数15送入cl寄存器mov cl,15
3) 用bx寄存器间接寻址方式将存储单元中的字与ax寄存器的值相加,结果在 ax中。
add ax,[bx]
4) 把al中的字节写入用基址变址寻址的存储单元中。
mov [bx][si],al
5) 用si寄存器和位移量value的寄存器相对寻址方式,从存储单元中读出一个字送入寄存器ax。
mov ax,value[si]
6) 将ax中的数与偏移地址为2000h存储单元的数相减,结果在ax中。
sub ax,ds:[2000h]
3.9 写出用下列寻址方式将存储单元x中的第3个字取出, ax与其相加再放入y单元的指令序列。(有的同学写6,也算对,理解不同)
1)直接寻址add ax,[x+4]; mov y,ax
2)寄存器相对寻址 mov bx,4; add ax,x[bx]; mov y,ax
3)基址变址mov bx,4; mov si,offset x; add ax,[si][bx]; mov y,ax
注意:有同学写作mov bx,x
add ax,[bx+6]
第三章作业
v s 顺序执行下述两个动作 1.s值加1,即s s 1 2.如果s 0,则该进程继续运行 3.如果s 0,则唤醒等待信号量s阻塞队列中的头一个进程 把阻塞态改为就绪态 执行v操作的进程继续运行。procedure s var s semaphore begin s s 1 if s 0 then ...
第三章作业
1 顺序栈空 栈满条件2 链栈栈空 栈满条件。3 循环队列队空 队满条件,如何表示队列中数据元素的个数4 链队列队空 队满条件。5 以下运算实现在顺序栈上的进栈,请在 处用适当的语句予以填充。int push sqstacktp sq,datatype x if sp top sqstack max...
第三章作业
1.论述各类绿地的环境特点和树种的选择。一 高层建筑中的狭窄街巷绿地绿地内的环境特点 直射辐射量少,日照时间短 夏季气温偏低,冬季因受周围建筑物热辐射的影响,气温偏高 风速一般偏低,但有时会产生狭管效应,使风速增大。这些地方裸露土面极少,多为水泥铺装,严重阻碍了土壤与大气的水 气交换,且存在一定程度...