1、(1)XCHG CS,AX ;错,CS不能参与交换(2)MOV BX,1000 ;错,存储器之不能交换(3)XCHG BX,IP ;错,IP不能参与交换(4)PUSH CS(5)POP CS ;错,不能将数据弹到CS中(6)IN BX,DX ;输入/输出只能通过AL/AX(7)MOV BYTEBX,1000 ;1000大于255,不能装入字节单元(8)MOV CS,1000 ;CS不能作为目标寄存器(9)MOV BX,OFFSET VARSI ;OFFSET只能取变量的偏移地址(10)MOV AX,SIDI ;SI、DI不能成为基址加变址(11)MOV COUNTBXSI,ES:AX ;AX是
2、寄存器,不能加段前缀37 设当前 SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少?当执行 PUSH BX 指令后,栈顶地址和栈顶2个字节的内容分别是什么?当前栈顶的地址=2FF00H当执行PUSH BX 指令后,栈顶地址=2FEFEH (2FEFEH)=57H (2FEFFH)=34H38 设DX=78C5H,CL=5,CF=1,确定下列各条指令执行后,DX和CF中的值。(1) SHR DX,1 ;DX=3C62H CF=1(2) SAR DX,CL ;DX=03C6H CF=0(3) SHL DX,CL ;DX=18A0H CF=1(4) ROR DX,CL
3、;DX=2BC6H CF=0(5) RCL DX,CL ;DX=18B7H CF=1 (6) RCR DH,1 ;DX=BCC5H CF=0;39 设AX=0A69H,VALUE字变量中存放的内容为1927H,写出下列各条指令执行后寄存器和CF、ZF、OF、SF、PF的值。 AX CF ZF OF SF PF(1)XOR AX,VALUE ; 134EH 0 0 0 0 1(2)AND AX,VALUE ; 0821H 0 0 0 0 1(3)SUB AX,VALUE ; F142H 1 0 0 1 1(4)CMP AX,VALUE ; 0A69H 1 0 0 1 1(5)NOT AX ; F
4、596H X X X X X (6)TEST AX,VALUE ; 0A69H 0 0 0 0 1310 设AX和BX中是符号数,CX和DX是无符号数,请分别为下列各项确定CMP和条件转移指令。(1) CX值超过DX转移。(2) AX未超过BX转移。(3) DX为0转移。(4) CX值等于小于DX转移。(1) CMP CX,DXJA NEXT(2) CMP AX,BX JLE NEXT(3) CMP DX,0 JZ NEXT(4) CMP CX,DX JBE NEXT311 阅11 阅读分析下列指令序列:ADD AX,BXJNO L1JNC L2SUB AX,BXJNC L3JNO L4JMP
5、 L5若AX和BX的初值分别为以下5种情况,则执行该指令序列后,程序将分别转向何处(L1L5中的一个)。(1) AX=13C6H, BX=80DCH(2) AX=0B568H,BX=54B7H (3) AX=42C8H, BX=608DH(4) AX=0D023H,BX=9FD0H(5) AX=9FD0H, BX=0D023H(1) 转L1(2) 转L1(3) 转L2(4) 转L5(5) 转L5 第四章 汇编语言程序设计习题45 画出下列语句中的数据在存储器中的存储情况。VARB DB 34,34H,GOOD,2 DUP(1,2 DUP(0)VARW DW 5678H,CD,$+2,2 DUP
6、(100)VARC EQU 1222H34HGOD178H56HC12H00H64H00VARB VARW46 按下列要求,写出各数据定义语句。(1) DB1为10H个重复的字节数据序列:1,2,5个3,4。(2) DB2为字符串STUDENTS(3) DB3为十六进制数序列:12H,ABCDH(4) 用等值语句给符号COUNT赋以DB1数据区所占字节数,该语句写在最后。 DB1 DB 16 DUP(1,2,5 DUP(3,4) DB2 DB STUDENTS DB3 DW 12H,0ABCDH COUNT EQU DB2DB1 48 对于下面的数据定义,各条MOV指令单独执行后,有关寄存器的
7、内容是什么?PREP DB ?TABA DW 5 DUP(?)TABB DB NEXTTABC DD 12345678H(1)MOV AX, TYPE PREP ;AX=1(2)MOV AX, TYPE TABA ;AX=2(3)MOV AX, LENGTH TABA ;AX=5(4)MOV AX, SIZE TABA ;AX=10(5)MOV AX, LENGTH TABB ;(6)MOV DX, SIZE TABC ;AX=4 410 若自STRING单元开始存放有一个字符串(以字符$结束);(1) 编程统计该字符串长度(不包含 $ 字符,并假设长度为两字节)。(2) 把字符串长度放在ST
8、RING 单元,把整个字符串往下移两个单元。 程序段为:(1) MOV SI,OFFSET STRING XOR BX,BXCONT:MOV AL,SI CMP AL,$ JZ NEXT INC BX INC SI JMP CONTNEXT: MOV AH,4CH INT 21H(2) STRING DB . $ COUNT EQU $-STRING : MOV SI,OFFSET STRING MOV CX,COUNT ADD SI,CX CONT: DEC SI MOV AL,SI MOV SI+2,AL LOOP CONT MOV STRING,CX MOV AH,4CH411 将字符串
9、STRING中的& 字符用空格代替,字符串STRING“The data is FEB&03”。 程序为:DATA SEGMENTSTRING DB The data is FEB&03COUNT EQU $-STRINGDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV SI,OFFSET STRING MOV CX,COUNT MOV AL,$ CMP AL,SI JNZ NEXT MOV BYTE PTRSI, INC SI LOOP CONT MOV AH,4CH INT 21HCOD
10、E ENDS END START416 键盘输入十个学生的成绩,试编制一个程序统计6969分,7079分,8089分,9099分及100分的人数,分别存放到S6,S7,S8,S9及S10单元中。 程序为: DATA SEGMENT BUF DB 10 DUP(? S6 DB ? S7 DB ? S8 DB ? S9 DB ? S10 DB ? DATA ENDS CODE SEGMENT ASSUME CS: START: MOV DS,AX MOV SI,OFFSET S6 XOR AL,AL MOV CX,0504H CONT: MOV SI,AL INC SI LOOP CONT MOV
11、 CX,10 MOV SI,OFFSET BUF CONT1: MOV AH,1 INT 21H SHL AL,CL MOV BL,AL MOV AH,1 SUB AL,30H OR AL,BL MOV SI,AL CMP AL,70H JAE NEXT1 INC BYTE PTR S6 NEXT1: CMP AL,80H JAE NEXT2 INC BYTE PTR S7 NEXT2: CMP AL,90H JAE NEXT3 INC BYTE PTR S8 NEXT3: CMP AL,99H JA NEXT4 INC BYTE PTR S9 JMP NEXT5 NEXT4; INC BYTE PTR S10 NEXT5: INC SI LOOP CONT1 MOV AH,4CH CODE ENDS END START第7章 基本输入/输出接口习题74 现有一输入设备,其数据端口地址为FFE0H,状态端口地址为FFE2H,当其D0为1时表明输入数据准备好。试采用查询方式,编程实现从该设备读取100个字节数据并保存到2000H:2000H开始的内存中。 程序段为:MOV AX,2000HMOV DS,AXMOV SI,2000HMOV CX,100 MOV DX,0FFE2H
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1