Assembler Test Essay Research Paper Nick RobertsonAssembeler

  • Просмотров 134
  • Скачиваний 9
  • Размер файла 14
    Кб

Assembler Test Essay, Research Paper Nick Robertson Assembeler Class: Take home test 1.What are the four steps of CPU execution are: 1) Fetch op code or immeiate data 2) increment IP 3) decode op and or execute 4) go to step 1 2.List all the 8086 register state their prupose. Group them by general purpose, pointing, and segment. They are: General Registers: axAccumilator (general purpose storage) bxPointer to memory cxCounting (input/output addresses) dxData (store info about peripherals The main purpose of the above started registers is to contain the initaial data for, and the reslts of, arithmetic or logical instructions. Pointing Registers: diDdiestintaion index siSource index spstack pointer bpBase pointer The main purpose of the above stated registers is to point to

other areas in memory. Segment- sc Code segment dsData segment ss Extra segment The main purpose of the above stated registers is to hold segments of information. 3) List all the 8086 flags and state their purpose. Group them by by state or control, they are: State Flags: State flags are so named becouse their values are influenced by the precious intructions and reflect some pecularities as a result. AFAuxiliary CarryFlag CFCarry Flag OFOverflow Flag PDParity Flag SFSign Flag ZFZero Flag Control Flag: Control Flags are so named becouse their pupose is to control the execution of certain intructions. IFInterrupt Flag TFTrap Flag DFDirection Flag 4) Define Ram and Rom ROM – Read Only Memory -Perminent - non-volitale ( is kept at shut-down) RAM – Random Access Memory -Changable

-Volitable ( is not kept at shut-down) 5)State and define the three busses used by the CPU. also state if the bus is unidirectional or bidirectional. They are: Address-Bidirectional hardware Data -Bidirectional Sends info ( Carrys info as well) Control-Unidirectional Mouse, Keyboard, etc…… 6)A program that will take a single digit numeric input from the computer, convert it to BCD, ass the number, and output the result to the monitor. .Model .stack 100h .code Start: mov ah, 01h Int 21h mov ax, 001h cmp al, 09h Jnz convert; jnz = jump not zero mov ax, 4C00h int 21h end start Convert add ax, 01h; add 1 if over 9 ret 7)State the difference between a macro and a procedure. Macro – Copies code a compilating / inserts Procedure – Jumps to instruction in memory 8)Give exaples of

the following addresing modes: Register – mov ax, cx Indirect – mov ax, 6000h mov ds, ax Direct – mov ax, [0123h] Indexed – mov ax, [bx + di] 9)Define the following assembler directives: Extern – External to current code Public – Can be called (internal) Global – Combination of both 10)For every ‘push’ there is a ‘pop’ 11)Write a program that will encrypt a string by XORing one character with the next character in the string. .Model tiny .Data grab db “this” .code start: mov ax, @ data mov ds, ax lea bx, grab lea si, grab stinc: inc si xor [bx][si];[T][H] inc bx comp si, 03h jne stinc mov ax 4ch int 21 end start 12)Write a program that will decrypt the program you just wrote. .Model tiny .Data grab db “this” .code start: mov ax, @ data mov ds, ax lea

bx, grab lea si, grab lea dx, toinc add bx, 04h add si, 04h stinc dec si xor [bx][si] dec bx cmp si, dx jne stinc int 21 end start 13)State the address 5F32A of the next op-code as a segmented address, a logical address. Give the offset address and the segment address. 5F32and shift to right 500000= F32A 14)List all the base-pointers registers and give the segmants that they can use. Label the default segmen register with each. Don’t forget about IP – Ip must pair with cs, sp with ss becouse these regiesters are involved in automatic CPU operations.Then you can pair the general-purpose data pointing registers BX, Di, and SI with the data segment register DS – The IP offset register is always asses to the CS segment register when addressing code memory. There is override