寰満璁$畻鏈哄師鐞嗗強搴旂敤澶ц繛鐞嗗伐鍑虹増绀剧瓟妗?- 鐧惧害鏂囧簱 联系客服

发布时间 : 星期四 文章寰満璁$畻鏈哄師鐞嗗強搴旂敤澶ц繛鐞嗗伐鍑虹増绀剧瓟妗?- 鐧惧害鏂囧簱更新完毕开始阅读28790e6fe109581b6bd97f19227916888486b995

MOV DL,AL AND DL,0FH AND AL,0F0H MOV CL,4 SHR AL,CL MOV BL,10 MUL BL ADD AL,DL

11.已知以X为首址的字单元中的数据依次为1234H,5678H;以Y为首址的字单元中 的数据依次为8765H、4321H。下面的程序执行后,(DX)=_DDDDH___,(AX)=__1___。 LEA SI,X LEA DI,Y MOV DX,[SI+2] ADD DX,[DI] CMP DX,[DI+2] JL L1 MOV AX,Y JMP EXIT L1: MOV AX,1

EXIT: ……

12.什么是无条件传送方式?什么是有条件传送方式?

答:无条件传输方式是指传输数据过程中,发送/接收数据一方不查询判断对方的状态,直接用输入/输出(IN/OUT)指令进行无条件的数据传输。条件传输方式,也称为查询传输方式,使用这种方式,CPU不断读取并测试外设的状态,如果外设处于“准备好”状态(输入设备)或“空闲”状态(输出设备),则CPU执行输入指令或输出指令与外设交换信息。 五、编程

1.编写一个内存自检程序,其要求是将数据55H写入要检测的内存区98000H到9FFFFH的每一个单元。然后,再逐个单元读出与55H比较。若全对,则屏幕显示“Memory OK”;只要任何一个单元出错,则显示“Memory ERROR”。试编程序实现上述内存自检功能。 答:实现方法之一

DATA SEGMENT AT 9800H

BUF DB 8000H DUP(?) CNT EQU $-BUF BUFD EQU 55H

DIS1 DB ‘Memory OK’ OAH,ODH,$

DIS2 DB ‘Memory ERROR’,OAH,ODH,$ DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX LEA DI,BUF MOV CX,CNT PUSH CX

MOV AL,BUFD CLD

REP STOSB POP CX

LEA SI,BUFD L1: LODSB

CMP AL,BUFD LOOPZ L1 JZ G

LEA DX,DIS2 MOV AH,09H INT 21H JMP E

G: LEA DX,DIS1 MOV AH,09H INT 21H

E: MOV AH,4CH INT 21H CODEENDS

END START

2.在BUFFER开始的单元中有100个带符号的字节数据,编写一个程序,将其中的正数、负数、零的个数分别统计出来,并分别存放在PLUS,MINUS,ZERO的单元中。

答:DATA SEGMENT

BUFFER DB 34H,0,45,-45,0,45,-34,-66,……;100个 CNT EQU 100

PLUS DB 100 DUP(?) MINUS DB 100 DUP(?) ZERO DB 100 DUP (?) DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV ES,AX MOV CX,100

LEA SI,BUFFER LEA DI,PLUS LEA BX,MINUS LEA BP,ZERO CLD

L: LODSB

TEST AL,80H JS M

CMP AL,O JNZ P

XCHG DI,BP STOSB

XCHG DI,BP JMP E

M: XCHG DI,BX STOSB

XCHG DI,BX JMP E P: STOSB E: DEC CX JNZ L

MOV AH,4CH INT 21H CODE ENDS

ENDS START

3.AX寄存器中有4个压缩BCD码,试编写程序将这4个数字分开,并分别存入BH、BL、CH和CL寄存器中。

code segment assume cs:code start:MOV AX,9876H MOV BL,AH;BL=98H AND BL,OFH ;BL=08H SHR AH,1 SHR AH,1 SHR AH,1

SHR AH,1 ;右移四次,AH=09H MOV BH,AH ;BH=09H MOV CL,AL ;CL=76H AND CL,OFH ;CL=06H SHR AL,1

SHR AL,1 SHR AL,1

SHR AL,1;右移四次,AL=07H MOV CH,AL ;CH=07H mov ah,4ch int 21h code ends end start

4.编写程序,统计寄存器BX中二进制位“1”的个数,结果存在AL中。

code segment assume cs:code start:mov BX,1234 mov bl,0;统计1的个数 mov cx,16;循环次数

loop1:test ax,8000h;不断的左移,与8000h比较获取1的个数 jnz loop2 inc bl shl ax,1 loop2:loop loop1 mov al,bl mov ah,4ch int 21h code ends end start

5. 编写程序实现接收一个字符的输入,并在屏幕上用二进制形式(0/1)显示出它的ASCII 码值。

code segment

assume cs:code,ds:data start:mov ah,07h int 21h mov cx,8 again:rol al,1 mov bl,al and al,1h add al,30h mov dl,al