1、 5BH ;-76H ;4CH (用2位16进制数表示) (2)-69DAH ; -3E2DH ; 1AB6H ; -7231H14作下列各式无符号数的运算 (1)1010001001110101 (2)1101101100001101 (3)1101101110101101 (4)111110111010 15.作下列各式的逻辑运算 (1)1010010100001111 1001110110100101 (2)1010010100001111 1001110110100101 (3)1010010100001111 1001110110100101 16.已知x1和x2的值,求x1补+x2
2、补,并指出结果的符号,判断是否产生溢出和进位? (1) x1= +0110011B x2 = +1011010B (2) x1= -0101001B x2 = - 1011101B (3) x1= +1100101B x2 = -1011101B第2章 汇编语言与汇编程序1. 根据下列要求编写一个汇编语言程序::(1) 代码段的段名为COD_SG(2) 数据段的段名为DAT_SG(3) 堆栈段的段名为STK_SG(4) 变量HIGH_DAT所包含的数据为95(5) 将变量HIGH_DAT装入寄存器AH,BH和DL(6) 程序运行的入口地址为START答案:DAT_SG SEGEMNT HIGH
3、_DAT DB 95DAT_SG ENDS;STK_SG SEGMENT DW 64 DUP(?)STK_SG ENDSCOD_SG SEGMENTMAIN PROC FARASSUME CS: COD_SG, DS: DAT_SG, SS: STK_SGSTART: MOV AX, DAT_SG MOV DS, AX MOV AH, HIGH_DAT MOV BH, AHMOV DL, AHMOV AH, 4CHINT 21HMAIN ENDPCOD_SG ENDS END START2. 指出下列程序中的错误: STAKSG SEGMENT DB 100 DUP(? STA_SG ENDS
4、 DTSEG SEGMENT DATA1 DB ? DTSEG END CDSEG SEGMENT MAIN PROC FAR START: MOV DS,DATSEG MOV AL,34H ADD AL,4FH MOV DATA,AL START ENDP CDSEG ENDS END 改正后:STAKSG SEGMENT DB 100 DUP(?STAKSG ENDSDTSEG SEGMENTDATA1 DB ?DTSEG ENDSCDSEG SEGMENT ASSUME CS: CDSEG, DS: DTSEG, SS: STAKSG MOV AX, DTSEGMOV DS, AXMOV
5、 AL, 34HADD AL, 4FHMOV DATA1, ALCDSEG ENDS END S3. 将下列文件类型填入空格:(1) .obj (2) .exe (3) .crf (4) .asm (5) .lst (6) .map 编辑程序输出的文件有_; 汇编程序输出的文件有_; 连接程序输出的文件有_。编辑程序输出文件: (4)汇编程序输出文件: (1), (3), (5) 连接程序输出文件: (2), (6)4. 下列标号为什么是非法的? (1) GET.DATA (2) 1_NUM (3) TEST-DATA (4) RET (5) NEW ITEM非法标号: (1)因为.只允许是标
6、号的第一个字符(2)第一个字符不能为数字 (3)不允许出现-(4)不能是保留字,如助记符 (5)不能有空格5. 下面的数据项定义了多少个字节? DATA_1 DB 6 DUP(4 DUP(0FFH) 24字节6. 对于下面两个数据段,偏移地址为10H和11H的两个字节中的数据是一样的吗? DTSEG SEGMENT | DTSEG SEGMENT ORG 10H | ORG 10H DATA1 DB 72H | DATA1 DW 7204H DB 04H | DTSEG ENDS DTSEG ENDS |不一样. 分别是72H, 04H和04H, 72H. 存储字时低8位存在低字节,高8位存在
7、高字节.7. 下面的数据项设置了多少个字节? (1) ASC_DATA DB 1234 (2) HEX_DATA DB 1234H (1) 设置了4个字节 (2) 设置了2个字节8. 执行下列指令后, AX寄存器中的内容是什么? TABLE DW 10,20,30,40,50 ENTRY DW 3 .MOV BX,OFFSET TABLEADD BX,ENTRYMOV AX,BX (AX)=409. 指出下列指令的错误:(1) MOV AH,BX (2) MOV SI,BX (3) MOV AX,SIDI(4) MOV AX,BXBP (5) MOV BX,ES:AX (6) MOV BYTE
8、 PTRBX,1000 (7) MOV AX,OFFSET SI (8) MOV CS,AX (9) MOV DS,BP (1) 源、目的字长不一致 (2) 源、目的不能同时为存贮器寻址方式 (3) 基址变址方式不能有 SI和DI的组合 (4) 基址变址方式不能有 BX和BP的组合 (5) 在8086寻址方式中,AX不能作为基址寄存器使用,而且源、目的不能同时为存贮器寻址方式 (6) 1000超出一个字节的表数范围 (7) OFFSET只用于简单变量,应去掉 (8) CS不能作为目的寄存器 (9) 段地址不能直接送入数据段寄存器10. 变量DATAX和DATAY定义如下: DATAX DW 0
9、148H DW 2316H DATAY DW 0237H DW 4052H按下述要求写出指令序列:(1) DATAX和DATAY中的两个字数据相加, 和存放在DATAY和DATAY+2中。(2) DATAX和DATAY中的两个双字数据相加, 和存放在DATAY开始的字单元中。(3) DATAX和DATAY两个字数据相乘(用MUL)。(4) DATAX和DATAY两个双字数据相乘(用MUL)。(5) DATAX除以23(用DIV)。(6) DATAX双字除以字DATAY(用DIV)。(1) MOV AX, DATAXADD AX, DATAYMOV BX, DATAX+2ADD BX, DATA
10、Y+2MOV DATAY, AXMOV DATAY+2, BX(2) MOV AX, DATAXADD DATAY, AXMOV AX, DATAX+2ADC DATAY+2, AX(3) MOV AX, DATAXMUL DATAYMOV DATAY,AXMOV DATAY+2,DX(4) MOV AX,WORD PTR DATAX MOV BX,WORD PTR DATAY MUL BX MOV RESULT,AX MOV RESULT+2,DX MOV AX,WORD PTR DATAY+2 MUL BX ADD RESULT+2,AX ADC RESULT+4,DX MOV AX,WO
11、RD PTR DATAX+2 MOV BX,WORD PTR DATAY ADD RESULT+2,AX ADC RESULT+4,DX MOV AX,WORD PTR DATAX+2 MOV BX,WORD PTR DATAY+2 MUL BX ADD RESULT+4,AX ADC RESULT+6,DX (5) MOV AX, DATAX MOV BL, 23DIV BLMOV BL,AHMOV AH, 0MOV DATAY, AX ;存放商MOV AL,BLMOV DATAY+2, AX ;存放余数(6) MOV AX, DATAXMOV DX, DATAX+2DIV DATAY MO
12、V DATAY, AX MOV DATAY+2, DX11. 试分析下面的程序段完成什么操作? MOV CL,04 SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL OR DL,BL 将DX: AX中的双字左移4位(乘16)12. 编写程序段, 比较两个5字节的字符串OLDS和NEWS, 如果OLDS字符串与NEWS不同, 则执行NEW_LESS, 否则顺序执行程序。LEA SI, OLDSLEA DI, NEWSMOV CX, 5CLDREPZ CMPSBJNZ NEW_LESS13. 假定AX和BX中的内容为带符号数, CX和DX中的内容为无符号数, 请用比较
13、指令和条件转移指令实现以下判断:(1) 若DX的值超过CX的值,则转去执行EXCEED(2) 若BX的值大于AX的值,则转去执行EXCEED(3) CX中的值为0吗? 若是则转去执行ZERO(4) BX的值与AX的值相减, 会产生溢出吗? 若溢出则转OVERFLOW(5) 若BX的值小于AX的值,则转去执行EQ_SMA(6) 若DX的值低于CX的值,则转去执行EQ_SMA (1) CMP DX, CX JA EXCEED(2) CMP BX, AX JG EXCEED(3) CMP CX, 0 JE ZERO(4) SUB BX, AX JO OVERFLOW(5) CMP BX, AX JL
14、 EQ_SMA(6) CMP DX, CX JB EQ_SMA14. 设(BX)0158H,(DI)10A5H,相对位移量 disp1B57H,(DS)2100H,没有使用段前缀,计算下列寻址方式下的有效地 址EA和物理地址PA(注意:寄存器和基址用BX,变址用DI) (1)直接寻址 (2)寄存器间接寻址 (3)寄存器相对间接寻址 (4)变址寻址 (5)寄存器相对变址寻址 (6)基址加变址寻址 (7)基址加变址相对寻址 15. 判断下列指令是否正确?(1)MOV AL,BX (2)MOV AL,CL (3)INC BX (4)MOV 5,AL (5)MOVBX,SI (6)MOV BL,F5
15、(7)MOV DS,2000H (8)POP CS (9)PHSH CS (10)OUT 258H,AL (11)MOV50BP,AX (12)MUL 35 (13)ADD BYTE PTRBX, DI (14)SAL AX,416. 已知一数据段中的数据为 DATA segment STR1 DB 0,1,2 STR2 DB “012” COUNT EQU 30 NUMB DB 3 DUP(2) NUMW DW 10H,-60H POIN DW 0 Data ends 试画出数据段中的数据在存储器中存储的形式。17. 上题中,各变量的偏移地址与变量值 各是多少?第3章 程序设计的基本技术1.
16、 试编写一段汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。abc: mov ah,1 int 21h cmp al,a jb stop cmp al,z ja stop sub al,20h mov dl,al mov ah,2 jmp abcstop:2.已知整数变量A和B,试编写完成下述操作的程序: (1)若两个数中有一个是奇数,则将该奇数存入A中,偶数存入B中; (2)若两个数均为奇数,则两数分别加1,并存回原变量; (3)若两个数均为偶数,则两变量不变。dseg segment a dw ? b dw ?dseg endscseg segmentmain proc fara
17、ssume cs:cseg,ds:dsegstart: push ds sub ax,ax push ax mov ax,dseg mov ds,axbegin: mov ax,a mov bx,b xor ax,bx test ax,0001 jz class test bx,0001 jz exit xchg bx,a mov b,bx jmp exitclass: test bx,0001 inc b inc aexit: retmain endpcseg ends end start3. 把010010之间的30个数,存入首地址为GRAD的字数组中,GRAD+i表示学号为i+1的学生成
18、绩。另一个数组RANK是30个学生的名次表,其中RANK+I的内容是学号为i+1的学生的名次。试编写程序,根据GRAD中的学生成绩,将排列的名次填入RANK数组中(提示:一个学生的名次等于成绩高于这个学生的人数加1)。grade dw 30 dup(?rank dw 30 dup(?main proc farcseg, ds:dseg, es: mov es,ax mov di,0 mov cx,30loop1: push cx mov si,0 mov ax,gradedi mov dx,0loop2: cmp gradesi,ax jbe go_on inc dxgo_on: add si
19、,2 loop loop2 pop cx mov rankdi,dx sdd di,2 loop loop1 ret4. 写出分配给下列中断类型号在中断向量表中的物理地址。 (1) INT 12H (2) INT 8(1) 00048h (2) 00020h5. 试编写程序,它轮流测试两个设备的状态寄存器,只要一个状态寄存器的第0位为1,则与其相应的设备就输入一个字符;如果其中任一状态寄存器的第3位为1,则整个输入过程结束。两个状态寄存器的端口地址分别是0024H和0036H,与其相应的数据输入寄存器的端口则为0026H和0038H,输入字符分别存入首地址为BUFF1和BUFF2的存储区中。
20、mov si, 0 mov di, 0test12: in al, 0024h test al, 08 jnz exit in al,0036h dev1: test al, 01 jz dev2 in al, 0026h mov buff1si, al inc sidev2: in al, 0036h test al, 01jz test12in al, 0038h mov buff2di,alinc dijmp test126. 给定(SP)=0100,(SS)=0300,(FLAGS)=0240,存储单元的内容为(00020)=0040,(00022)=0100,在段地址为0900及偏移
21、地址为00A0的单元中有一条中断指令INT 8,试问执行INT 8指令后,SP,SS,IP,FLAGS的内容是什么?栈顶的三个字是什么? 答案: (SP) = 00FA(SS) = 0300(IP) = 0040(FLAGS) = 0040堆栈内容:00A1H0900H0240H7. 编写一个程序,接收从键盘输入的10个十进制数字,输入回车符则停止输入,然后将这些数字加密后(用XLAT指令变换)存入内存缓冲区BUFFER。加密表为; 输入数字: 0,1,2,3,4,5,6,7,8,9 密码数字: 7,5,9,1,3,6,8,0,2,4scode db 7,5,9,1,3,6,8,0,2,4bu
22、ffer db 10 dup(? mov cx,10 lea bx,scodeinput: mov ah,01 cmp al,0ah and al,0fh xlat mov buffersi,al inc si loop input8. 编写一个汇编语言程序,将字符串Assembly Language Programming全部转换为大写字母,存放到原来所在单元。9. 编写一个将16位二进制数转换成BCD码数的程序。10. 编写一个将5位BCD码数(小于65536)转换成二进制数的程序。11 编写一个将16位二进制数转化为四位十六进制数的程序,并将十六进制数的各位显示出来。第四章 总线1 采用
23、一种总线标准进行微型计算机的硬件结构设计具有什么优点?为适应用户不断变化的要求,微机系统设计必须采用模块化设计,不同的模块组合形成一定的功能。模块之间的连接关系采用标准的总线结构可使不同功能的模块便于互连,兼容性好、生命周期长。模块采用标准化总线结构设计可使模块的生产供应规模化、多元化、价格低、有利于用户。2 一个总线的技术规范应包括哪些部分?总线技术规范应包括:(1)机械结构规范:模块尺寸、总线插头插座形式与结点数以及模块与插头插座的机械定位。(2)功能规范:总线信号名称、功能以及相互作用的协议。(3)电气规范:总线中每个信号工作时的有效电平、动态转换时间、负载能力以及电气性能的额定值与最大值。3 总线的定义是什么?总线就是两个以上模块(或子系统)间传送信息的公共通道,通过它模块间可进行数据、地址码及命令的传输。4 微型计算机系统总线由哪三部分组成?它们各自的功能是什么
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1