第三章习题答案(32位汇编)
16 32位微机原理、汇编语言及接口技术(第二版)陈涛 钱晓捷 2-3章课后习题答案

第二章2.5 1M=220 因为最小的一个段的大小为16个字节(一个小段),所以 最多有220/24=216(1) 0FFFFH:0 物理地址为 0FFFF0H(2) 40H:17H 物理地址为 400H+17H=417H(3) 2000H:4500H 物理地址为200000H+4500H=24500H(4) 0B821H:4567H 物理地址为 0B8210H+4567H=0BC777H2.9 (1) CX 16位 DL 8位 操作数宽度不一样(类型不一致)(2) IP 不能作为源操作数,也不能作为目的操作数(3) 立即数不能直接赋给段寄存器(4)段寄存器间不能直接赋值(5) 类型不一致,立即数300超过8位,不能赋给8位寄存器AL(6) 寄存器间接寻址方式不能使用sp 寄存器(7)+作为算术运算符,它的操作数为常量(8)20h 为立即数不能作为目的操作数2.12 (1) ADD DX, BX(2) ADD AL,BYTE PTR [BX+SI] 或ADD AL,BYTE PTR [BX][SI](3) ADD [BX+0B2H],CX(4)ADD WORD PTR [0520H],3412H(5)ADD AL,0A0H21203h 20100h20101h 20102h 20103h 21201h 21201h 21202h2.16(1)1256H (2)20A1H+1256H+20000H=232F7H又[232F7H]=3280H所以EA=3280H 2.17(1)当AX=1E1EH时(2)当AX的D7和D0位不同时为0时(3)无符号数cx<64H时3.9 (1) 67h (2) 133h (3) 230h (4)41h (5)7654H3.11(1) my1b db 'Personal Computer'(2) my2b db 20(3) my3b db 14h(4)my4b db 00010100B(5) my5w dw 20 dup (?)(6) my6c equ 100(7)my7c = 'Personal Computer'3.14109h 10ah 113h114hAX=114H AX=6AX=0DH AX=02H 100h。
第三章 习题和思考题参考答案(汇编语言)

第三章习题和思考题(汇编语言)一.填空题1.在汇编语言中标号的类型有NEAR 和FAR,变量的类型有BYTE、WORD、DWORD 、QWORD、TBYTE。
2.在汇编语言中,一个过程的属性为NEAR,表明主程序和子程序在同4一代码段中;若为FAR,则表明主程序和子程序不在同一代码段中。
3.下列程序运行后,X单元的内容为140。
.MODEL SMALL.DATAX DW 10Y DW 20Z DW 100,40,66,80.CODE.STARTUPMOV BX, OFFSET ZMOV AX, [BX]MOV Y, AXMOV AX, [BX+2]ADD AX, YMOV X, AX.EXITEND4.以下程序执行后,(AX)=5501H。
……A DW 124H,345H,128H,255H,512H,127H,678H,789HB DW 5……MOV BX, OFFSET AMOV SI, BMOV AX, [BX+SI]二.选择题1.完成41H送[2100H],42H送[2101H]的正确程序段是B 、C。
A. MOV AL, 41HB. MOV SI, 2100HMOV [2100H], AL MOV [SI], ‘A’INC 41H INC SIMOV [2100H], AL MOV [SI], ‘B’C. MOV AX, 4241HD. MOV AX, ‘AB’MOV [2100H], AX MOV [2100H], AX2. 在汇编过程中不产生指令码,只用来指示汇编程序的指令是 C 。
A. 汇编指令B. 机器指令C. 伪指令D. 宏指令三.问答题1.什么是指令语句?什么是伪指令语句?它们的主要区别是什么?答:指令语句经过汇编后要产生机器码,而伪指令语句不产生机器码;指令语句和机器的一种操作相对应,而伪指令语句和机器的一种伪操作(汇编过程)相对应。
2. 试计算下列伪指令中各变量所分配的字节数A1 DW 20A2 DW 8DUP(?),10,20A3 DD 10DUP(?)A4 DB 3DUP(?,4DUP(0))A5 DB ‘Happy New Year!!’答:变量A1、A2、A3、A4、A5分配的字节数分别为2 、20、40、15、16 四.阅读程序1.请把下列程序中所缺语句补充完整,并回答问题:TITLE EXAMPLE.ASMDATA SEGMENTA DW 0B DW 0C DW 230, 20, 54(1) DATA ENDSCODE SEGMENTASSUME (2) CS:CODE DS:DATAPROG PROC FARSTART:MOV AX,DATA(3) MOV DS, AXMOV BX,OFFSET CMOV AX,[BX]MOV B,AXMOV AX,2[BX]ADD AX,BMOV A,AXEXIT: MOV AH, 4CHINT 21HCODE ENDS_(4) END START问题: 1.程序执行完后,A单元的内容是多少? 2502.在以ES:SOC1为起始地址的表中存有字符串,它以NULL(00H)作为串结束符。
汇编语言第三章答案

3.1 给定(BX)=637DH,(SI)=2A9BH,位移量D=7237H,试确定在以下各种寻址方式下的有效地址是什么?(1) 立即寻址(2) 直接寻址(3) 使用BX的寄存器寻址(4) 使用BX的简接寻址(5) 使用BX的寄存器相对寻址(6) 基址变址寻址(7) 相对基址变址寻址答:(1) 操作数在指令中,即立即数;(2) EA=D=7237H;(3) 无EA,操作数为(BX)=637DH;(4) EA=(BX)=637DH;(5) EA=(BX)+D=0D5B4H;(6) EA=(BX)+(SI)=8E18H;(7) EA=(BX)+(SI)+D=1004FH;超过了段的边界,最高进位位丢失,因此EA=004FH。
3.2 试根据以下要求写出相应的汇编语言指令(1) 把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器中。
(2) 用寄存器BX和SI的基址变址寻址方式把存储器中的一个字节与AL寄存器的内容相加,并把结果送到AL寄存器中。
(3) 用寄存器BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和(CX)相加,并把结果送回存储器中。
(4) 用位移量为0524H的直接寻址方式把存储器中的一个字与数2A59H相加,并把结果送回存储单元中。
(5) 把数0B5H与(AL)相加,并把结果送回AL中。
答:(1) ADD DX, BX(2) ADD AL, [BX][SI](3) ADD [BX+0B2H], CX(4) ADD WORD PTR [0524H], 2A59H(5) ADD AL, 0B5H3.3 写出把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令。
要求使用以下几种寻址方式:(1) 寄存器间接寻址(2) 寄存器相对寻址(3) 基址变址寻址答:(1) MOV BX, OFFSET BLOCKADD BX, (6–1)*2MOV DX, [BX](2) MOV BX, OFFSET BLOCK 改为:MOV BX, (6-1)*2MOV DX, [BX+(6–1)*2] 也可MOV DX, BLOCK[BX](3) MOV BX, OFFSET BLOCKMOV SI, (6–1)*2MOV DX, [BX][SI]3.4 现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,试说明下列各条指令执行完后AX寄存器的内容。
1632位微机原理与汇编语言课后第三章习题答案

习题 3.9(1)mov al, 23h and 45h or 67h;al=67h(2)mov ax, 1234h/16 + 10h;ax=0133h(3)mov ax, 23h shl 4;ax=0230h(4)mov al, ‘a’ and (not (‘a’-’A’));al=41h(5)mov ax, (76543 lt 32768) xor 7654h;ax=7654h习题 3.10(1)41h 42h 43h 0ah 10h 45h 46h ffh - 04h 04h 04h ffh - 04h 04h04h ffh - 04h 04h 04h(2)10h 00h fbh ffh - - - - - -习题 3.11(1)my1b db 'Personal Computer'(2)my2b db 20(3)my3b db 14h(4)my4b db 00010100b(5)my5w dw 20 dup(?)(6)my6c equ 100(7)my7c equ < Personal Computer >习题 3.14(1)offset varb = 0104h;offset mess = 0114h(2)type buff = 1;type mess = 1;type vard = 4(3)sizeof varw = 4;sizeof buff = 10;sizeof mess = 5(4)lengthof varw =2;lengthof vard = 1习题 3.15(1)mov byte ptr [bx],1000 ;1000超出了一个字节范围(2)mov bx,offset myword[si];OFFSET只能用于简单变量.寄存器的值只有程序执行时才能确定,而offset是汇编过程计算偏移地址,故无法确定,可以改为lea bx,myword[si](3)cmp mybyte1,mybyte2 ;两个都是存储单元,指令不允许(4)mov mybyte1,al+1 ;数值表达式应为运算符加常量,寄存器值只有执行时才能确定,汇编时无法计算(5)sub al,myword ;字节量AL与字量myword,类型不匹配(6)jnz myword ;Jcc指令只有相对短转移寻址方式,不支持间接寻址方式,间接寻址指指令代码中指示寄存器或存储单元,目的地址从寄存器或存储单元中取得习题 3.16.model small ;定义程序的存储模式.stack ;定义堆栈段.data ;定义数据段.codestart: mov ax,@data;程序段起点mov ds,ax ;设置DSmov ah,1 ;只允许输入小写字母int 21hsub al,20h ;转换为大写字母mov dl,almov ah,2int 21h ;显示mov ax,4c00hint 21hend start习题 3.17ASCTOH macrolocal asctoh1,asctoh2cmp al,'9'jbe asctoh1 ;;小于等于‘9’,说明是0~9,只需要减去30hcmp al,'a'jb asctoh2 ;;大于‘9’,小于‘a’,说明是A~F,还要减7sub al,20h ;;大于等于‘a’,说明是a~f,还要减20h asctoh2: sub al,7asctoh1: sub al,30hendm.model small ;定义程序的存储模式.stack ;定义堆栈段.data ;定义数据段LEDtable db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8hdb 80h,90h,88h,83h,0c6h,0c1h,86h,8ehdispmsg db 'input a number:$'crlf db 0dh,0ah,'$'lednum db ?.codestart: mov ax,@data;程序段起点mov ds,ax ;设置DSmov dx,offset dispmsgmov ah,09hint 21hmov ah,1int 21hasctohmov lednum,almov dx,offset crlfmov ah,09hint 21hmov bx,offset LEDtablemov al,lednumxlatmov bl,almov cl,4rol al,clcall htoascmov al,blcall htoascmov ax,4c00hint 21hHTOASC proc;子程序HTOASC:将al低4位表达的十六进制数转换为ASCII码push bxmov bx,offset ASCII ;bx指向ascii码表and al,0fh ;取得一位16进制数xlat CS:ASCII ;换码:AL←CS:[BX+AL]mov dl,almov ah,2int 21hpop bxret;数据区ASCII db 30h,31h,32h,33h,34h,35h,36h,37h,38h,39hdb 41h,42h,43h,44h,45h,46hHTOASC endpend start习题3.18mov al, bufXcmp al, bufYjae donemov al, bufYdone: mov bufZ, al习题3.19.;习题3.19.model small.stack.databufX dw -7signX db ?.codestart: mov ax,@datamov ds,axcmp bufX,0 ;test bufX,80hjl next ;jnz nextmov signX,0jmp donenext: mov signX,-1done: mov ax,4c00hint 21hend start习题3.20.;习题3.20.model small ;定义程序的存储模式.stack ;定义堆栈段.data ;定义数据段bufx dw -1bufy dw -1bufz dw -1.codestart: mov ax,@data;程序段起点mov ds,ax ;设置DSmov dl,'2'mov ax,bufxcmp ax,bufyje next1dec dlnext1: cmp ax,bufzje next2mov bx,bufycmp bx,bufzje next2dec dlnext2: mov ah,2int 21hmov ax,4c00hint 21hend start习题3.21.;数据段number db 78h ;实现假设的一个数值0111 1000B,D3为1addrs dw offset fun0,offset fun1,offset fun2,offset fun3dw offset fun4,offset fun5,offset fun6,offset fun7;取得各个处理程序开始的偏移地址.codestart: mov ax,@data;程序段起点mov ds,ax ;设置DSmov al,numbermov bx,0 ;BX←记录为1的位数mov dl,'?' ;处理数据为零的情况,显示?cmp number,0jnz restartmov ah,2int 21hjmp doneRestart: cmp al,0 ;AL=0结束jz doneagain: shr al,1 ;最低位右移进入CFjc next ;为1,转移inc bx ;不为1,继续,只在不为1的时候增加bx,所以后文补充jmp againnext: push axpush bxshl bx,1 ;位数乘以2(偏移地址要用2个字节单元)jmp addrs[bx] ;间接转移:IP←[table+BX];以下是各个处理程序段fun0: mov dl,'0'jmp dispfun1: mov dl,'1'jmp dispfun2: mov dl,'2'jmp dispfun3: mov dl,'3'jmp dispfun4: mov dl,'4'jmp dispfun5: mov dl,'5'jmp dispfun6: mov dl,'6'jmp dispfun7: mov dl,'7'jmp dispdisp: mov ah,2 ;显示一个字符int 21hpop bxpop axinc bx ;注意,即使Di位不为1,为记录确切的分支入口,仍然需要增加bxjmp restartdone: mov ax,4c00hint 21hend start习题3.22.model small ;定义程序的存储模式.stack ;定义堆栈段.data ;定义数据段b_data db 12h,45h,0f3h,6ah,20h,0feh,90h,0c8h,57h,34h ;原始数据num equ 10 ;数据个数sum db ? ;预留结果单元.codestart: mov ax,@data;程序段起点mov ds,ax ;设置DSxor si, si ;位移量清零xor al, al ;取第一个数mov cx, num ;累加次数again: add al, b_data[si] ;累加inc si ;指向下一个数loop again ;如未完,继续累加mov sum, al ;完了,存结果mov ax,4c00hint 21hend start习题3.23;xiti323,空格数目放在total中.model small ;定义程序的存储模式.stack ;定义堆栈段.data ;定义数据段total dw ?wtemp dw ? ;是writ子程序的入口参数.codestart: mov ax,0040h ;送段地址mov ds, axmov si, 0 ;偏移地址mov cx, si ;计数(循环次数)xor ax, ax;空格计数器清零again: cmp byte ptr [si], 20h ;与空格的ASCII码比较jne next ;不是空格,转inc ax ;是空格,空格数加1next: inc si ;修改地址指针loop again ;cx=cx-1,如cx=0 退出循环mov total,ax ;total中放空格数mov ax,totalmov wtemp,axcall writemov ax,4c00hint 21hwrite proc ;显示有符号10进制数的通用子程序write push ax ;入口参数:共享变量wtemppush bxpush dxmov ax,wtemp ;取出显示数据test ax,ax ;判断数据是0,正数还是负数jnz write1mov dl,'0' ;是0,显示“0”后退出mov ah,2int 21hjmp write5write1: jns write2 ;是负数,显示“-“mov bx,ax ;ax中数据暂存于bx,因为要用dos调用mov dl,'-'mov ah,2int 21hmov ax,bxneg ax ;数据求补(绝对值)write2: mov bx,10push bx ;10压入堆栈,作为推出标志write3: cmp ax,0 ;数据(商)为0,转向显示jz write4sub dx,dx ;扩展被除数dx.axdiv bx ;数据除以10,dx.ax/10,商送ax,余数送dxadd dl,30h ;余数(0~9)转换为ascii码push dx ;数据各位按照先低位后高位依次压入堆栈jmp write3write4: pop dx ;数据各位按照先高位后低位依次弹出堆栈cmp dl,10 ;判断是否结束,标志为10je write5mov ah,2 ;显示int 21hjmp write4write5: pop dxpop bxpop axretwrite endpdpcrlf proc ;使光标回车换行的子程序push axpush dxmov ah,2mov dl,0dhint 21hmov ah,2mov dl,0ahint 21hpop dxpop axretdpcrlf endpend start习题3.24;数据段count equ 100parray dw count dup(?) ;假设有100个数据wordsum dw 0msg db ‘overflow’,’$’;代码段mov cx,countmov ax,0mov bx,offset parrayagain: add ax,[bx]jnc nextmov dx,offset msgmov ah,9int 21h ;显示溢出信息jmp done ;然后,跳出循环体next: add bx,2loop againmov wordsum,axdone: mov ax,4c00hint 21h习题3.25;xiti325.asm;编程把—个16位无符号二进制数转换成为用8421BCD码表示的5位十进制数。
1632位微机原理汇编语言及接口技术课后习题答案

第一章1.1 解:五代,详细见书1.2 解:微型计算机:以大规模、超大规模集成电路为主要部件,以集成了计算机主要部件——控制器和运算器的微处理器为核心,所构造出的计算机系统。
PC机:PC(Personal Computer)机就是面向个人单独使用的一类微机。
单片机:用于控制的微处理器芯片,内部除CPU外还集成了计算机的其他一些主要部件,如:ROM、RAM、定时器、并行接口、串行接口,有的芯片还集成了A/D、D/A转换电路等。
数字信号处理器DSP:主要面向大流量数字信号的实时处理,在宿主系统中充当数据处理中心,在网络通信、多媒体应用等领域正得到越来越多的应用1.3 解:微机主要有存储器、I/O设备和I/O接口、CPU、系统总线、操作系统和应用软件组成,各部分功能如下:CPU:统一协调和控制系统中的各个部件系统总线:传送信息存储器:存放程序和数据I/O设备:实现微机的输入输出功能I/O接口:I/O设备与CPU的桥梁操作系统:管理系统所有的软硬件资源1.4 解:系统总线:传递信息的一组公用导线,CPU通过它们与存储器和I/O设备进行信息交换。
好处:组态灵活、扩展方便三组信号线:数据总线、地址总线和控制总线。
其使用特点是:在某一时刻,只能由一个总线主控设备来控制系统总线,只能有一个发送者向总线发送信号;但可以有多个设备从总线上同时获得信号。
1.5解:(1)用于数值计算、数据处理及信息管理方向。
采用通用微机,要求有较快的工作速度、较高的运算精度、较大的内存容量和较完备的输入输出设备,为用户提供方便友好的操作界面和简便快捷的维护、扩充手段。
(2)用于过程控制及嵌人应用方向。
采用控制类微机,要求能抵抗各种干扰、适应现场的恶劣环境、确保长时间稳定地工作,要求其实时性要好、强调其体积要小、便携式应用强调其省电。
1.6 解:1.7 解:I/O通道:位于CPU和设备控制器之间,其目的是承担一些原来由CPU处理的I/O任务,从而把CPU从繁杂的I/O任务中解脱出来。
计算机系统第三章答案

习题3.参考答案:〔1〕后缀:w,源:基址+比例变址+偏移,目:寄存器〔2〕后缀:b,源:寄存器,目:基址+偏移〔3〕后缀:l,源:比例变址,目:寄存器〔4〕后缀:b,源:基址,目:寄存器〔5〕后缀:l,源:立即数,目:栈〔6〕后缀:l,源:立即数,目:寄存器〔7〕后缀:w,源:寄存器,目:寄存器〔8〕后缀:l,源:基址+变址+偏移,目:寄存器4.参考答案:〔1〕源操作数是立即数0xFF,需在前面加‘$’〔2〕源操作数是16位,而长度后缀是字节‘b’,不一致〔3〕目的操作数不能是立即数寻址〔4〕操作数位数超过16位,而长度后缀为16位的‘w’〔5〕不能用8位寄存器作为目的操作数地址所在寄存器〔6〕源操作数寄存器与目操作数寄存器长度不一致〔7〕不存在ESX寄存器〔8〕源操作数地址中缺少变址寄存器5.参考答案:6.参考答案:〔1〕xptr、yptr和zptr对应实参所存放的存储单元地址分别为:R[ebp]+8、R[ebp]+12、R[ebp]+16。
〔2〕函数func的C语言代码如下:void func(int *xptr, int *yptr, int *zptr){int tempx=*xptr;int tempy=*yptr;int tempz=*zptr;*yptr=tempx;*zptr = tempy;*xptr = tempz;}7.参考答案:〔1〕R[edx]=x〔2〕R[edx]=x+y+4 〔3〕R[edx]=x+8*y 〔4〕R[edx]=y+2*x+12 〔5〕R[edx]=4*y 〔6〕R[edx]=x+y 8.参考答案:〔1〕指令功能为:R[edx]←R[edx]+M[R[eax]]=0x 00000080+M[0x8049300],寄存器EDX 中内容改变。
改变后的内容为以下运算的结果:00000080H+FFFFFFF0H因此,EDX 中的内容改变为0x00000070。
16、32位微机原理、汇编语言和接口技术教程课后习题答案解析

《16/32 位微机原理、汇编语言及接口技术教程》部分习题参考解答第1 章微型计算机系统概述〔习题1.2 〕什么是通用微处理器、单片机(微控制器)、芯片、嵌入式系统?〔解答〕通用微处理器:适合较广的应用领域的微处理器,例如装在机、笔记本电脑、工作站、服务器上的微处理器。
单片机:是指通常用于控制领域的微处理器芯片,其内部除外还集成了计算机的其他一些主要部件,只需配上少量的外部电路和设备,就可以构成具体的应用系统。
芯片:称数字信号处理器,也是一种微控制器,其更适合处理高速的数字信号,内部集成有高速乘法器,能够进行快速乘法和加法运算。
嵌入式系统:利用微控制器、数字信号处理器或通用微处理器,结合具体应用构成的控制系统,其典型的特点是把计算机直接嵌入到应用系统之中。
〔习题1.5 〕说明微型计算机系统的硬件组成及各部分作用。
〔解答〕:也称处理器,是微机的核心。
它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。
存储器:存储器是存放程序和数据的部件。
外部设备:外部设备是指可与微机进行交互的输入()设备和输出()设备,也称设备。
设备通过接口与主机连接。
总线:互连各个部件的共用通道,主要含数据总线、地址总线和控制总线信号。
习题1.6 〕什么是总线?微机总线通常有哪3 组信号?各组信号的作用是什么?〔解答〕总线:传递信息的共用通道,物理上是一组公用导线。
3 组信号线:数据总线、地址总线和控制总线。
(1)地址总线:传输将要访问的主存单元或端口的地址信息。
(2)数据总线:传输读写操作的数据信息。
(3)控制总线:协调系统中各部件的操作。
习题1.7 〕简答如下概念:(1)计算机字长(2)取指-译码-执行周期(3)(4)中断(5)总线解答〕(1)处理器每个单位时间可以处理的二进制数据位数称计算机字长。
(2)指令的处理过程,即指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。
微机原理与汇编语言第三章习题解答

3.1 8086/8088 CPU的地址总线有多少位?其寻址范围是多少?答:20条,寻址范围:0~220-1 (1MB)3.2 8086/8088 CPU分为哪两个部分?各部分主要由什么组成?答: BIU(Bus Interface Unit总线接口单元)、EU(Execution Unit执行单元)3.4 8086/8088 CPU中有几个通用寄存器?有几个变址寄存器?有几个指针寄存器?通常哪几个寄存器也可作为地址寄存器使用?答:八个通用寄存器:AX、BX、CX、DX、SP、BP、SI、DI;三个指针寄存器:IP、SP、BP。
指令指针IP总是指向下一条将要执行的指令在代码段中的偏移地址。
当堆栈中有压入的数据时,堆栈指针SP总是指向栈顶;两个间址指针寄存器:源变址SI和目的变址寄存器DI;在寄存器间接寻址方式中,只有BX、BP、SI、DI能充当地址寄存器。
3.8 在8086/8088 CPU工作在最小模式时,(1)当CPU访问存储器时,要利用哪些信号?(2)当CPU访问外设接口时,要利用哪些信号?(3)当HOLD有效并得到响应时,CPU的哪些信号置高阻?答:当MN/MX为高电平时工作于最小模式、否则为最大模式。
(1)地址线信号、数据线信号、RD、WR、M/IO、DEN、ALE、BHE、DT/R。
(2)地址线信号、数据线信号、RD、WR、M/IO、READY、DEN、ALE、DEN。
(3)DEN、DT/R3.9 当在8086/8088 CPU工作在最大模式时,(1)S—2、S—1、S—0可以表示CPU的哪些状态?(2)CPU的RQ——/GT——信号的作用?答:(1)(2)多处理器的总线控制信号。
共享总线的其他主控者通过该信号申请总线控制权和获得总线授予权。
3.10 试求出下面运算后各个标志位的值,并说明进位标志和溢出标志的区别? 1278H+3469H答:0 0 0 1 0 0 1 0 0 1 1 1 1 0 0 0+ 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1= 0 1 0 0 0 1 1 0 1 0 0 0 0 0 0 1SF=0、CF=0、ZF=0、PF=1、AF=1、OF=03.12什么是逻辑地址?什么是物理地址?它们之间有什么联系?各用在何处?答:逻辑地址:在存储器寻址中,程序员在程序中指定的地址称之为逻辑地址。
16。32位微机原理、汇编语言及接口技术(第二版)第三章课后习题答案。

>第3章3.1:汇编语言有什么特点解:汇编语言是一种以处理器指令系统为基础的低级程序设计语言,它采用助记符表达指令操作码,采用标识符号表示指令操作数,可以直接、有效地控制计算机硬件,因而容易创建代码序列短小、运行快速的可执行程序3.2编写汇编语言源程序时,一般的组成原则是什么?解:(1)完整的汇编语言源程序由段组成(2)一个汇编语言源程序可以包含若干个代码段、数据段、附加段或堆栈段,段与段之间的顺序可随意排列(3)需独立运行的程序必须包含一个代码段,并指示程序执行的起始点,一个程序只有一个起始点(4)所有的可执行性语句必须位于某一个代码段内,说明性语句可根据需要位于任一段内(5)通常,程序还需要一个堆栈段3.3 MODEL伪指令是简化段定义源程序格式中必不可少的语句,它设计了哪7种存储模式?各用于创建什么性质的程序?解:3.4如何规定一个程序执行的开始位置,主程序执行结束应该如何返回DOS,源程序在何处停止汇编过程?解:开始位置:用标号指明返回DOS:利用DOS功能调用的4CH子功能来实现汇编停止:执行到一条END伪指令时,停止汇编3.5逻辑段具有哪些属性?解:段定位、段组合和段类型。
3.6给出采用一个源程序格式书写的例题3.1源程序例题3.1:创建一个在屏幕上显示一段信息的程序……解:stack segment stackdb 1024(0)stack endsdata segmentstring db 'Hello,Assembly!',0dH,0aH,‘$’data endscode segment 'code'assume cs:code,ds:data,ss:stackstart: mov dx,offset stringmov ah,9int 21hcode endsend start3.7DOS支持哪两种可执行程序结构,编写这两种程序时需要注意什么?解:(1). EXE程序程序可以有多个代码段和多个数据段,程序长度可以超过64KB通常生成EXE结构的可执行程序(2). COM程序只有一个逻辑段,程序长度不超过64KB需要满足一定条件才能生成COM结构的可执行程序(MASM 6.x需要采用TINY模式)3.8举例说明等价“EUQ”伪指令和等号“=”伪指令的用途解:符号定义伪指令有“等价EQU”和“等号=”:符号名 EQU 数值表达式符号名 EQU <字符串>符号名=数值表达式EQU用于数值等价时不能重复定义符号名,但“=”允许有重复赋值。
完整word版汇编第三章习题答案

第三章习题答案3.1寻址方式有效地址(EA)(1) 立即寻址无(2) 直接寻址7237H(3) BX寄存器寻址无(4) BX寄存器间接寻址637DH(5) BX寄存器相对寻址0D5B4H(6) 基址变址寻址8E18H(7) 相对基址变址寻址004FH32⑴ADD DX, BX⑵ADD AL, [BX][SI]⑶ADD [BX+OB2H], CX⑷ADD WORD P TR[0524H], 2A59H⑸ADD AL,0B5H⑴LEA BX, BLOCK +(6-1)*2MOV DX, [BX]⑵LEA BX, BLOCKMOV DX, [BX+10]⑶MOV SI, 10LEA BX, BLOCK MOV DX, [BX][SI]34⑴1200H⑵0100H⑶4C2AH⑷3412H4C2AH⑹7856H⑺65B7H35⑴EA=(I P)+D=7CD9H⑵物理地址=16 X DS+(BX)=224A0H IP=0600H⑶物理地址=16 X DS+(BX)+D=275B9H IP=098AHMOV BX, 2000HLDS SI, [BX]MOV AX, [SI]AX3.7(1)⑵⑶0626H+27H=064DH0626H+6BH=0691H0626H+0FFC6H=05ECH3.8⑴⑵(3)(4)(5)(6)(7)(8)(9)(10)(11)(12)寻址方式立即数寻址寄存器寻址直接寻址直接寻址寄存器间接寻址寄存器间接寻址寄存器间接寻址寄存器间接寻址寄存器相对寻址寄存器相对寻址基址变址寻址相对基址变址寻址39⑴310⑴⑵(注意符号扩展)MOV AX, [BX+12]MOV ZERO, AXMOV AX, ARRAY[BX]MOV ZERO, AX1234H0032H8FF10H8FF11H8FF12H8FF13H物理地址无无20100H20050H20100H21100H15010H200A0H20000H + 0100H+0AH = 2010AH20150H201A0H201F0H1E00H3.130FFAAEH0FFAAFH(1)初始(2) 8057H 入栈(3) 0F79H 入栈(4) 0F79H 出栈3.1562A0H 62A0H 62A0H 62A0HSFZFCFOF317(1)+1234H +4321H +CFA0H +9D60H74D4H A5C1H 3240HMOV AX, ZSUB AX, XADD AX, WMOV Z, AXADD X, 6ADD R,9MOV AX, WSUB AX, XSUB AX, RMOV Z, AXMOV AX, WIMUL X(1)0000H4NOT AX NOT DX ADDAX, 1 ADCDX, 03.23(1) BX=009AH ⑵ BX=0061H ⑶ BX=00FBH (4) BX=001CH ⑸ BX=0000H (6) BX=0001H3.25(1) +53 X 2 MOV AL, 35HADDY, 6MOV BX, YIDIV BXMOV Z, AX MOV R, DX (4) MOV BX, W SUB BX MOV AX, Y MOV CX, 5 IMUL CX MOV CX AX MOV AX, BXCWD IDIV CX SAL AX,1 MOV 乙AX,X ;(BX)=W-X ;(DX,AX)=Y X 5 ;BX 扩展到EAX (32位) ;被除数扩展到64位 滁数丫限制为字(16位) ;可以认为AX 能存储下结果(2) -49 X 2 MOVAL, CFH53.29(1) LEA SI, CONAMELEA DI, P RLINE MOV CX, 20 (2) LEA SI, CONAME ADD SI, 19 LEA DI, P RLINE (3) LEA SI, CONAME ADD SI, 2 LODSWCLD REP MOVSB ADD DI, 19 STDREP MOVSB(4) LEA DI, P RLINEADD DI, 5 ⑸ LEA DI, CONAME MOV AL, 20HMOV CX, 20 CLD REPNE SCASB JNZ NO-FOUND MOV BH, ALNO-FOUND:3.31(1) CLDMOV CX, 132 MOV AL, 20HLEA DI, P RINT_LINE REP STOSB REPNE SCASB第一个‘一’在 DI-1中⑶ LEA DI, STUDENT_ADDR+8MOV AL, 一' 最后一个‘一‘在 DI-1中结果为 SAL AL, 16AH =106DSAL结果为9EH = -98DAL, 1结果为 MOV AL, 35H SAR AL, 1 1AH=26D (4) -49 - 2 MOV SAR 结果为E7H=-24DAL, CFHAL, 13.27 DX=0000 0000 0101 1100B (1) ⑵ ⑶ ⑷ ⑹ ⑺ (8)(9)DX=OOOO 0000 0001 0111B DX=0000 0101 1100 1000B DX=0000 0000 0111 0010B DX=0001 0000 0001 0111B DX=0000 0000 1100 1101B DX=0000 0000 1011 1001B DX=0000 0101 1100 1100BDX=0000 0000 1101 1100B (4) LEA DI, STUDENT_NAME⑸ CLDSTOSW(2) LEA DI, STUDENT_ADDRMOV AL, 一' MOV CX, 9CLDf STDREPNE SCASBMOV CX,9MOV CX, 30LEA SI, STUDENT_NAME LEADI, P RINT_LINE REPMOVSBJNE NO-MATCHMOV CX, 30LEA DI, STUDENT_NAME MOV AL,环'REP STOSB LEA SI, STUDENT_ADDR+8 LEA DI, P RINT_LINE+131 REP MOVSBNO-MATCH:HLTAX BX JB JNB JBE JNBE JL JNL JLE JNLE 1F52H 1F52H X V V X X V V X88C9H 88C9H X V V X X V V X FF82H 007EH X V X V V X V X58BAH 020EH X V X V X V X V FFC5H FF8BH X V X V X V X V 09A0H 1E97H V X V X V X V X 8AEAH FC29H V X V X V X V X D367H 32A6H X V X V V X V XMOV AL, STA TUS;当全为0时;偶转移,当有2个1时(0的情况前一条已经跳转)CMP AL, 00101010B3.39(1 ) JZ ROUTINE-1JMP ROUTINE-3;当为3个1时;剩余情况,1个1时。
工程热力学(第三版)习题答案全解可打印第三章汇编

v=
RgT p
=
297J/(kg ⋅ K) × (500 + 273)K 0.1×106 Pa
= 2.296m3/kg
ρ=1=
1
= 0.4356kg/m3
v 2.296m3 / kg
(5)V m =Mv=28.01×10-3 kg/mol × 2.296m3/kg=64.29×10-3 m 3 /mol
实际送风的体积流率
qin
=
qn RT p
=
223.21kmol/h ×8.3145J/(mol ⋅ K) × (250 + 273)K
150 + 765 750.062
×105
Pa
= 7962.7m3/h
或 p0qV0 = pqV
T0
T
qVin
=
p0 qV0 T pT0
=
760 ×105 Pa × 5000m3 / h × 523K 750.062
150 + 765 750.062
×
105
Pa
×
273K
= 7962.7m3/h
(2) 烟囱出口处烟气的体积流量
qVout
=
qn RT2 p2
=
0.062mol/s ×8.3145J/(mol ⋅ K) × 480K 0.1×106 Pa
=
2.4745m3/s
设烟囱出口截面积为 D
qVout
= cf
解:据题意,活塞上负载未取去前气缸内气体的初始状态
为:
p1
=
pb
+
m1g A
=
771 ×10−1MPa 750.062
第3章习题答案

习题31. Cache-主存存储系统和主存-辅存存储系统有何不同?2. SRAM和DRAM的主要差别是什么?3. 假设某存储器具有32位地址线和32位数据线,请问:(1)该存储器能存储多少个字节的信息?(2)如果存储器由1M×8位SRAM芯片组成,需要多少片?4. 某32位计算机系统采用半导体存储器,其地址码是32位,若使用4M×8位的DRAM 芯片组成64MB主存,并采用内存条的形式,问:(1)若每个内存条为4M×32位,共需要多少内存条?(2)每个内存条内共有多少片DRAM芯片?(3)主存需要多少DRAM芯片?5. 一个512K×16的存储器,由64K×1的2164 DRAM芯片构成(芯片内是4个128×128结构),问:(1)共需要多少个DRAM芯片?(2)若采用分散式刷新方式,单元刷新间隔不超过2ms,则刷新信号的周期是多少?(3)若采用集中式刷新方式,读写周期为0.1μs,存储器刷新一遍最少用多少时间?6. 某主存系统中,其地址空间0000H~1FFFH为ROM区域,ROM芯片为8K×8位,从地址6000H开始,用8K×4位的SRAM芯片组成一个16K×8位的RAM区域,假设RAM芯片有和信号控制端。
CPU地址总线为A15~A0,数据总线为D7~D0,读/写控制信号为R/,访存允许信号为,要求:(1)写出地址译码方案;(2)画出主存与CPU的连接图。
7. 设主存储器容量为64M字,字长为64位,模块数m=8,分别用顺序方式和交叉方式进行组织。
主存储器的存储周期T=100ns,数据总线宽度为64位,总线传送周期τ=50ns。
若按地址顺序连续读取16个字,问顺序存储器和交叉存储器的带宽各是多少?8. 设某计算机访问一次主存储器的时间如下:传送地址需1个时钟周期,读/写需4个时钟周期,数据传送1个时钟周期,采用下述主存结构按地址顺序连续读取16个字的数据块,各需多少时钟周期?(1)单字宽主存,一次只能读/写1个字。
32位汇编语言程序设计部分课后习题答案资料

11
习题解答
第2章习题:数据表示和寻址
2.1 简答题(2、3、4、7、8) 2.2 判断题(2、4、8、9、10)
2.3 填空题(1、2、3、8、9)
2.10、2.14、2.15、2.17
2.1 简答题-1
(2)字符“'F'”和数值46H作为MOV指令的源操作数 有区别吗? • 没有,因为字符“'F'”的ASCII码就是数值46H (3)为什么可以把指令“MOV EAX, (34+67H)*3”中 的数值表达式看成是常量? • 汇编程序在汇编过程中对数值表达式计算,得到一 个确定的数值,故称数值表达式为常量 (4)汇编语言为什么规定十六进制数若以A~F开头, 需要在前面加个0? • 以便与标识符区别,因为标识符要求以字母(或特 殊符号)开头
7
习题解答
习题1.9
• IA-32处理器有哪三类基本段,各是什么用途? • 解答: • 代码段:存放程序的指令代码 • 数据段:存放当前运行程序所用的数据 • 堆栈段:主存中堆栈所在的区域
8
习题解答
习题1.13
• 汇编语言语句有哪两种,每种语句由哪4个部分组成 • 解答: • 汇编语句有两种
执行性语句(处理器指令) 说明性语句(伪指令) • 每个语句有4部分组成 标号 指令助记符 操作数或参数 注释
14
习题解答
2.2 判断题-1
(2)常用的BCD码为8421 BCD码,其中的8表示D3位的 权重。 •对 (4)用“BYTE”和“DWORD”定义变量,如果初值相 同,则占用的存储空间也一样多。 • 错。用BYTE只占一个存储单元,而DWORD要占4个存 储单元 (8)立即数寻址只会出现在源操作数中。 •对
汇编语言课后答案第3章

汇编语言课后答案第3章第3章习题3.1 填空题(1)汇编语言指令由两部分组成:___操作码__________表示指令的操作内容,_____操作数________表示指令在执行过程中所用到的数据信息。
(2)在16位CPU的寄存器间接寻址方式中,若用__SI_____、__DI______、__BX______作为间接寻址的寄存器,则操作数在____DS___段中;若用___BP____作为间接寻址的寄存器,则操作数在___SS_____段中。
(3)在16位CPU的基址变址寻址方式中,基址寄存器可以为__BX_____或__BP______,变址寄存器可以为___SI____或___DI_____,若用__BX_____作为基址寄存器,则操作数在____数据段___段中;若用___BP____作为基址寄存器,则操作数在__堆栈______段中。
(4)设AX=2000H,BX=2300H,则在执行了指令CMP AX,BX后,标志CF=__1_______、ZF=____0____。
(5)当执行指令DIV BL后,被除数在_AX_______中,所得商在_______AL__中,余数在_____AH___中。
3.2 选择题1.若栈顶的物理地址为12000H,当执行完指令PUSH BX后,栈顶的物理地址为(D)A. 12001HB. 12002HC. 11FFFHD. 11FFEH2.在程序运行过程中,确定下一条指令的物理地址的计算表达式是(B)A. DS×16+SIB. CS×16+IPC. SS×16+SPD. ES×16+DI3.下面指令执行后,将改变寄存器AX内容的指令是(B)A. OR AX,AXB. AND AX,BXC. TEST AX,01HD.CMP AX,14.设AH=79H,当执行指令ADD AH,98H后,标志位CF和0F 的值分别为(D )A. 0,0B. 0,1C. 1,0D. 1,15.设AL=0A0H,要使结果AL=50H,应执行的指令是( D)A. AND AL,0F0HB. NOT ALC. OR AL,0F0HD. XOR AL,0F0H6.设AH=68H,当执行指令SUB AH,72H后,标志位CF和SF 的值分别为(D )A. 0,0B. 0,1C. 1,0D. 1,17.要使寄存器AL的最低位置1,应使用下面的指令( C )A. AND AL,01HB. XOR AL,01HC. OR AL,01HD. NOT AL8.要使BL寄存器的最高位清0,应使用下面的指令(D)A. AND BL,80HB. OR AL,7FHC. OR BL,80HD. AND BL,7FH9. 将寄存器AX的内容乘以2的正确指令序列是( A )A. SHL AX,1B. SHR AX,1C. ROL AX,1D. RCR AX,110.下列指令执行后,寄存器AL中的内容为(C)MOV AL,90HADD AL,ALADC AL,ALA. 20HB. 240HC. 41HD. 241H3.3 说明下列指令中源操作数的寻址方式。
汇编语言程序设计第三章习题答案

第三章答案:3.1(1)立即数寻址代码段(2)寄存器寻址数据段(3)寄存器间址数据段(4)寄存器间址数据段(5)直接寻址数据段(6)直接寻址数据段(7)基址寻址堆栈段(8)直接寻址代码段(9)寄存器寻址数据段(10)变址寻址数据段(11)基址变址寻址数据段(12)基址变址寻址堆栈段(13)基址变址寻址堆栈段(14)基址变址寻址堆栈段3.2(1)直接寻址30000H+0ABCH=30ABCH(2)寄存器寻址(3)直接寻址30000H+2000H=32000H(4)基址寻址30000H+0100H+2000H=32100H(5)寄存器间址30000H+0100H=30100H(6)寄存器间址30000H+00A0H=300A0H(7)寄存器间址20000+0010H=20010H(8)基址变址寻址20000H+0010H+2000H+00A0H=220B0H (9)基址寻址30000H+0100H-40H=300C0H(10)变址寻址30000H+0040H+00A0H=300E0H(11)基址变址寻址30000H+0100H+0100H-0040H=301C0H (12)基址变址寻址20000H+00A0H+0100H+0010H=201B0H (13)变址寻址30000H+2000H+0002H=32002H(14)基址变址寻址41000H+2000H+0100H+0002H=43102H 3.3第一种:MOV AX,[02C0H]第二种:MOV AX,[BP]第三种:MOV AX,0240H[BX]第四种:MOV AX,0100H[DI]第五种:MOV AX,0220H[SI](只要物理地址为095C0H即可)3.4(1)错,类型不匹配(2)错,类型二义性(3)对(4)错,立即数不能直接送入段寄存器(5)错,字节单元无法存放PUSH的值(6)对(7)对(8)错,不能把数据从段寄存器传入段寄存器(9)错,源操作数与目的操作数不能同时为存储器操作数(10)错,操作数类型二义性(11)错,XCHG指令的两个操作数都不能为立即数(12)错,类型不匹配(13)错,操作数类型二义性(14)错,RCL移位不为1时,必须用CL寄存器来操作(15)错,不能传送入段寄存器CS(16)错,目的操作数不能为立即数(17)错,格式不正确(18)错,变址寄存器不能使用寄存器BP(19)错,基址寄存器不能使用寄存器SI(20)错,目的操作数必须为通用寄存器3.5(1)(CL)=0F6H(2)(1E4F6)=5678H(3)(BX)=0056H (AX)=1E40H(4)(SI)=00F6H (DS)=1E40H (1E4F6H)=0024H (5)(CX)=00F6H (AX)=5678H (09226H)=1234H 3.6MOV是数据传送指令,LEA是取地址指令。
微机原理和接口技术课后习题和参考答案解析(汇编)

微机原理和接口技术课后习题和参考答案解析(汇编)精品文档第一章课后习题1.1 把下列十进制数转换成二进制数、八进制数、十六进制数。
① 16.25 ② 35.75 ③ 123.875 ④ 97/128 1.2 把下列二进制数转换成十进制数。
① 10101.01 ② 11001.0011 ③ 111.01 ④ 1010.1 1.3 把下列八进制数转换成十进制数和二进制数。
① 756.07 ② 63.73 ③ 35.6 ④ 323.45 1.4 把下列十六进制数转换成十进制数。
① A7.8 ② 9AD.BD ③ B7C.8D ④ 1EC 1.5 求下列带符号十进制数的8位补码。
① +127 ② -1 ③ -0 ④ -1281.6 求下列带符号十进制数的16位补码。
① +355 ② -11.7 计算机分那几类?各有什么特点?1.8 简述微处理器、微计算机及微计算机系统三个术语的内涵。
1.9 80X86微处理器有几代?各代的名称是什么? 1.10 你知道现在的微型机可以配备哪些外部设备? 1.11 微型机的运算速度与CPU的工作频率有关吗? 1.12 字长与计算机的什么性能有关?习题一参考答案1.1 ① 16.25D=10000.01B=20.2Q=10.4H② 35.75D=100011.11B=43.6Q=23.CH③ 123.875D=1111011.111B=173.7Q=7B.EH④ 97/128D=64/123+32/128+1/128=0.1100001B=0.604Q=0.C2H 1.2 ①10101.01B=21.25D ② 11001.0011B=25.1875D ③ 111.01B=7.25D ④ 1010.1B=10.5D1.3 ① 756.07Q=111101110.000111B=494.109D ② 63.73Q=110011.111011B=51.922D③ 35.6Q=11101.110B=29.75D ④ 323.45Q=11010011.100101B=211.578D1.4 ① A7.8H=167.5D ② 9AD.BDH=2477.738D③ B7C.8D=2940.551D ④ 1ECH=492D1.5 ① [+127]补=01111111 ② [-1] 补= 11111111③ [-0] 补=00000000 ④[-128] 补=100000001.6 ① [+355] 补= 0000000101100011 ② [-1] 补= 1111 1111 1111 1111 1.7 答:传统上分为三类:大型主机、小型机、微型机。
新编16 32位微型计算机原理及应用答案(第五版)_第三章参考答案

第三章 8086/8088微处理器及其系统 教材习题3.1-3.70参考答案3.1 为什么要研究8086/8088微处理器及其系统?这比直接研究32位微处理器及其系统有何优缺点?解:尽管8086/8088后续的80286、80386、80486以及Pentium系列CPU结构和功能已发生很大变化,但从基本概念与结构以及指令格式上来讲,他们仍然是经典的8086/8088CPU的延续与提升。
3.2 8086 CPU有多少根数据线和地址线?它能寻址多少内存地址单元和I/O端口?8088CPU又有多少根数据线和地址线?为什么要设计8088CPU?解:8086 CPU有16根数据线和20根地址线,可寻址1MB存储单元和64KB的I/O端口。
8088 CPU 有16位内部数据线和8条外部数据总线,20根地址线。
8088 CPU 是8086 CPU的向下兼容版,这样设计主要为了与INTEL原有的8位外围接口芯片直接兼容。
3.3 8086 CPU内部按功能可分为哪两大部分?他们各自的主要功能是什么?解:从功能上讲,8086可分为两个部分,即总线接口单元(bus interface unit,BIU)和执行单元(execution unit ,EU)。
总线接口单元(BIU)的功能是负责CPU与存储器或I/O设备之间的数据传送。
EU的功能只是负责执行指令;执行的指令从BIU的指令队列缓冲器中取得,执行指令的结果或执行指令所需要的数据,都由EU向BIU发出请求,再由BIU经总线控制电路对存储器或外设存取。
3.4 8086 CPU内部的总线接口单元BIU由哪些功能部件组成?他们的基本操作原理是什么?解:BIU内有4个16位的段地址寄存器CS、DS、SS和ES,16位指令指针IP,6字节指令队列缓冲器,20位地址加法器和总线控制电路。
基本操作原理是BIU要从内存取指令送到指令队列缓冲器;CPU执行指令时,总线接口单元要配合执行单元从指定的内存单元或者外设端口中取数据,将数据传送给执行单元,或者把执行单元的操作结果传送到指定的内存单元或外设端口中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章通用数据处理指令答案3.3
1)ESP减2
2)mov edx, [esp] add esp, 4
3)78894111
4)26h,0,be26h,0
5)68h,0
6)0098h,零位
7)ff98h,符号
8)0,0,0
9)0123456788765432h
10)4
3.4
1)mov eax,050ah
2)mov dvar,050ah
3)mov esi,edx
4)mov dvar,al
5)mov ds,ax
6)mov eax,dvar
7)mov ds,dvar
8)mov ax,ds
9)Mov dvar,ds
3.5
1)类型不一致
2)指令指针寄存器(eip)不能像通用寄存器那样直接赋值修改。
其
是在执行控制转移指令、出现中断或异常时被处理器赋值而相应改变。
3)立即数不能向段寄存器赋值。
正确的写法是:mov ax ,1234h
Mov es,ax
4)段寄存器不能向段寄存器赋值。
段寄存器属于专用寄存器。
5)超范围。
Al(低八位)寄存器的范围是:0~255
6)无明确类型。
正确的写法是:mov byte ptr[esi], 45h
7)正确的写法是:mov eax,[ebx+edi]
8)不可以向立即数传数据。
3.6
1)Mov ecx ,[edi]
Mov [edi],ebx
Mov ebx,ecx
3.7
堆栈:即按照先进后出存取原则组织的存取区域。
基本操作:进栈指令PUSH,出栈指令POP
3.8
1)0012ffach
2)0012ffaah
3)0012ffa6h
4)0012ffaah
5)0012ffach
6)0012ffb0h
3.10
Cf:进位标志,体现二进制数据最高位的进位或借位。
针对无符号整数运算设计,用于反映无符号数据加减运算结果是否超出范围、是否需要利用进(借)位反映正确结果。
Of:溢出标志,表达有符号整数进行加减运算的结果是否超出范围。
针对有符号整数运算。
也就是说,如果将参加运算的操作数认为是无符号数,就应该关心进位;而如果将参加运算的操作数认为是有符号数,则要注意是否溢出。
3.11分别执行如下程序片段,说明每条指令的执行成果
(1)mov eax,80h ;eax= 80h
add eax,3 ;eax=83h, CF=0 ,SF=0
add eax,80h ;eax=103h, CF=0 ,SF=0
adc eax,3 ;eax=106h, CF=0 ,SF=0
(2)mov eax,100 ;eax=64h
add ax,200 ;eax=12ch, CF=0
(3)mov eax,100 ;eax=64h
add al,200 ;eax=2ch, CF=1
(4)mov al,7fh ;al=7fh
sub al,8 ;al=77h ,CF=0,SF=0
sub al,80h ;al=f7h,CF=1,SF=1
sbb al,3 ;al=f3h,CF=0,SF=0
3.12给出下列各条指令执行后AL的值,以及CF、ZF、SF、OF和PF 的状态。
mov al,89h al=89h,不改变上一条指令的标志
add al,al al=12h, CF=1,ZF=0,SF=0,OF=1,PF=1
add al,9dh al=0afh, CF=0,ZF=0,SF=1,OF=0,PF=1
cmp al,obch al=0afh, CF=1,ZF=0,SF=1,OF=0,PF=1
sub al,al al=00h, CF=0,ZF=1,SF=0,OF=0,PF=1
dec al al=0ffh, CF=0,ZF=0,SF=1,OF=0,PF=1
inc al al=00h, CF=0,ZF=1,SF=0,OF=0,PF=1
3.13 如下两段程序执行后,EDX,EAX寄存器对的值各是多少?(1)eax=f0000000h
edx=11h
(2)eax=e0000000h
edx=ffh
3.14请分别用一条汇编语言指令完成如下功能:
(1)add edx,ebx
(2)add al, [ebx+esi]
(3)add [ebx+0b2h],ecx
(4)add vard,3412h
(5)add eax, 0a0h
3.15
3.16分别执行如下程序片段,说明每条指令的执行结果:(1);ESI=9CH
;ESI=80H
;ESI=FFH
;ESI=01H
(2);EAX=1010B
;EAX=0010B,CF=1
;EAX=0100B,CF=0
;EAX=0000B,CF=0
(3);EAX=1011B
;EAX=101100B,CF=0
;EAX=10110B,CF=0
;EAX=10111B,CF=0
(4);EAX=0,CF=0,OF=0
;ZF=1,SF=0,PF=1
3.17给出下列各条指令执行后AX的结果,以及状态标志CF、OF、SF、ZF、PF的状态。
mov ax,1470h
and ax, ax
or ax,ax
xor ax,ax
not ax
test ax, 0f0foh
3.18举例说明逻辑运算指令怎样实现复位、置位和求反功能
3.20 VAR1*VAR2+VAR3-540
VAR4
商存到EAX,余数存到EDX
3.21 X=71 imul eax, 71
3.22 mov ebx,eax ;EBX=EAX*20
shl ebx,2 ;EBX=EAX*22
add eax,ebx ;EAX=EAX*(22+20)
shl ebx,2 ;EBX=EAX*24
add eax,ebx ;EAX=EAX*(24+22+20)
3.23
3.24
3.25mov array2[ebx*4], eax
add ebx,1。