汇编指令word ptr
1、已知AX=0FF60H,CF=1 MOV DX,96 XOR DH,0FFH SBB AX,DX 执行上述指令序列后,AX=_ffffh,CF=__1 2、设寄存器AL,BL,CL中内容均为76H, XOR AL,0FH AND BL,0FH OR CL,0FH 执行上述指令序列后,AL=__79h BL=______06h_____,CL=_____7fh_____ 3、已知AX=0A33AH,DX=0F0F0H AND AH,DL ah=a0h XOR AL,DH al=cah NEG AH NOT AL 执行上述指令序列后,AH=___60h___,AL=____35h____4、DATA SEGMENT S9 DB0,1,2,3,4,5,6,7,8,9 DATA ENDS ┇ LEA SI,S9 LEA,DI,S9+1 MOV CX,5 LOP: MOV AL,[SI] XCHG AL,[DI] MOV [SI],AL ADD SI,2 ADD DI,2 LOOP LOP 上述程序段运行后,S9开始的10个字节存储单元内容是什么?S9 DB 1,0,3,2,5,4,7,6,9,8 5、MOV AL,38H MOV BL,49H CALL SUBO INC AL DEC CL ┇ SUBO PROC ADD AL,BL MOV CL,AL DAA RET SUBO ENDP 上述程序段运行后,AL=______88h___,CL=____80h___ 6、DA3 EQU WORD PTR DA4 DA4 DB 0ABH,89H ┇ SHR DA3,1 MOV DX,DA3 SHL DA4,1 MOV CX,DA3 上述程序段运行后,CX=___10ccH______,DX=_____1066H___ 四、程序填空题(注意:下列各小题中,每空只能填一条指令!每小题6分,共12分) 1、下面程序段是判断寄存器AH和AL中第3位是相同,如相同,AH置0,否则AH置全1。
试把空白处填上适当指令。
xor ah,al_____ AND AH,08H jnz zero_____ MOV AH,OFFH JMP NEXT ZERO:MOV AH,0 NEXT:…… 2、以BUF为首址的字节单元中,存放了COUNT个无符号数,下面程序段是找出其中最大数并送入MAX单元中。
BUF DB 5,6,7,58H,62,45H,127,…… COUNT EQU $-BUF MAX DB? ┇ MON BX,OFFSET BUF MOV CX,COUNT-1 MOV AL,[BX] LOP1:INC BX cmp al,[bx]____ JAE NEXT MOV AL,[BX] NEXT:DEC CX jz lop1____ MOV MAX,AL 五、编制程序题(第1小题6分,第2小题14分,共20分) 1、编定程序段,用DOS的1号功能调用通过键盘输入一字符,并判断输入的字符。
如字符是"Y",则转向YES程序段;如字符是"N",则 转向NO程序段;如是其他字符,则转向DOS功能调用,重新输入字符。
(考生勿需写出源程序格式,只需写出与试题要求有关的指令序 列) (YES和NO分别是两程序段入口处的标号) CODE SEGMENT ASSUME CS:CODE BEGIN:MOV AH,01h INT 21H CMP AL,'Y' JZ YES CMP AL,'N' JZ NO JMP BEGIN YES:........NO:.........MOV AH,4CH INT 21H CODE ENDS END BEGIN2、在BUF1和BUF2两个数据区中,各定义有10个带符号字数据,试编制一完整的源程序,求它们对应项的绝对值之和,并将和数存入以 SUM为首址的数据区中。
DATA SEGMENT BUF1 DW-56,24,54,-1,89,-8…… BUF2 DW45,-23,124,345,-265,…… SUM DW10DUP(0) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA BEGIN: MOV AX,DATA MOV ES,AX MOV DS,AX LEA SI,BUF1 MOV BX, OFFSET BUF2 LEA DI,SUM MOV CX,10 L1:MOV AX,[SI] ROL AX,1 JC L2 ROR AX,1 L4:MOV DX,AX MOV AX,[BX] ROL AX,1 JC L3 ROR AX,1 L5:ADD AX,DX MOV [DI],AX INC BX INC BX INC SI INC SI INC DI INC DI LOOP L1 JMP LAST L2:ROR AX,1 NEG AX JMP L4 L3:ROR AX,1 NEG AX JMP L5 LAST:MOV AH,4CH INT 21H CODE ENDS END BEGIN
BYTE PTR和WORD PTR分别是什么意思
BYTE PTR 表示[DI]处一个字节,[DI]表示DI值指定的内存地址处BYTE PTR [DI],0 就是把[DI]处的一个字节填为0,如果是WORD PTR则会把那个地方的两个字节填为0。
WORD PTR WORD PTR [SI] ;这是强制定义为字大小mov ds:[si],10f ;这是不允许的操作,因为si指向的空间只有8bit(1byte)大小,所以mov WPRD PTR ds:[SI],10f就是为了告诉CPU mov的源地址是2byte大小的,10f是可以存储进去的.10f需要占用9bit,而存储器内最小空间是1字节所以10f在存储器内需要占用2byte大小的内存空间...
汇编语言里PTR什么意思? C++里面又是什么意思?
ptr -- pointer (指针)缩写。
汇编里面 ptr 是规定 的 字 (保留字)。
mov ax,bx ;是把BX寄存器“里”的值赋予AX,由于二者都是word型,不用wordmov ax,word ptr [bx];是把内存地址等于“BX寄存器的值”的地方所存放的数据,赋予ax。
由于只是给出一个内存地址,不知道希望赋予ax的,是byte还是word,所以需要用word明确指出!c语言里 ptr 是 程序员自己 写的变量名字,不是保留字。
当然,它可以是 指针。
例如: float a[5];float *ptr;ptr = &a[0];...
汇编MOV WORD PTR[SI], 10F什么意思
WORD PTR [SI] ;这是强制定义为字大小mov ds:[si],10f ;这是不允许的操作,因为si指向的空间只有8bit(1byte)大小,所以mov WPRD PTR ds:[SI],10f就是为了告诉CPU mov的源地址是2byte大小的,10f是可以存储进去的.10f需要占用9bit,而存储器内最小空间是1字节所以10f在存储器内需要占用2byte大小的内存空间...
这些事汇编语言的题目,哪些高手请赶快帮帮忙,星期一就得交作业了...
在没有寄存器名存在的情况下,用操作符“X ptr”指明内存单元的长度,X在汇编指令中可以为word 或者byte。
例如:mov word ptr ds:[0],1inc word ptr [bx]move byte ptr ds:[0],1inc byte ptr [bx]在没有寄存器参与的内存单元访问指令中,必须要显性地告诉CPU所要访问的单元是字单元,还是字节单元。
ps:参考 王爽【汇编语言】第二版...
转载请注明出处51数据库 » da3 equ word ptr da4
大湿胸的初恋